Wikipedia
testwiki
https://test.wikipedia.org/wiki/Main_Page
MediaWiki 1.46.0-wmf.24
first-letter
Media
Special
Talk
User
User talk
Wikipedia
Wikipedia talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Thread
Thread talk
Summary
Summary talk
Test namespace 1
Test namespace 1 talk
Test namespace 2
Test namespace 2 talk
Draft
Draft talk
Campaign
Campaign talk
TimedText
TimedText talk
Module
Module talk
SecurePoll
SecurePoll talk
CNBanner
CNBanner talk
Translations
Translations talk
Event
Event talk
Topic
Newsletter
Newsletter talk
Wikipedia:Village pump
4
35019
739181
738996
2026-04-23T15:22:03Z
Chaotic Enby
58843
/* Changes to electionadmin userright */ reply ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
739181
wikitext
text/x-wiki
{{mbox|type=style|text=<p>Before posting here, remember that [[Wikipedia:What Test Wiki is not|Test Wikipedia is not a community]]. The idea of "community consensus" is therefore meaningless.<p>If you would like to start a discussion relating to this wiki, consider posting to the [[mail:wikitech-l|wikitech-l]] mailing list.}}
'''This is the test wiki for MediaWiki developers. It is not intended for research or other serious use of content. If you were trying to reach the encylopedic content, please use the [[:en:|English Wikipedia]].'''
'''Ce wiki est un wiki de test pour les développeurs MediaWiki. Il ne sert pas à la recherche ni à d'autres fins officielles de son contenu. Si vous recherchez le contenu encyclopédique, il se trouve sur la [[:fr:|Wikipedia française]].'''
'''미디어위키 개발자를 위한 테스트 위키입니다. 이는 내용의 연구나 기타 진지하게 사용하기 위한 것이 아닙니다. 백과사전적인 내용을 찾으려면, [[:ko:|한국어 위키백과를]] 이용하세요.'''
'''Este é a wiki de teste para desenvolvedores do MediaWiki. Não se destina a pesquisa ou outro uso sério de conteúdo. Se você estava tentando acessar o conteúdo da enciclopédia, use a [[:pt:|Wikipédia em português]].'''
'''Це тестова вікі для розробників MediaWiki. Цей сайт не призначений для якихось досліджень або наповнення контентом. Вікіпедія знаходиться [[:uk:|тут]].'''
'''Sta cuà ła xé ła Wiki de prova par i desviłupadori de MediaWiki. Sta Wiki no ła xé intendesta par ła riserca o altre doparasion da contegnui ençiclopèdeghi. Se te jeri drio intentar de catar fora contegnui da ençiclopedia, varda [[:vec:|Wikipèdia in Vèneto]].'''
'''这是一个供MediaWiki开发者测试的维基站点,请不要在此放置严肃的内容页面或进行研究。请访问[[:zh:|中文维基百科]]以访问百科全书内容。'''
There is an [[/Archive|archive]].
{{Wikipedia:Village pump/topic list}}
__TOC____NEWSECTIONLINK__<!--
####################################################
########## PLEASE LEAVE THE ABOVE LINES ##########
####################################################-->
==Script==
Hello, can someone please make edits that were blocked by an edit filter, see [https://test.wikipedia.org/w/index.php?title=Special:AbuseLog&wpSearchUser=LuniZunie], we are testing warning and reporting and do not want to report or revert the wrong user on normal Wikipedia and blow it up. Also are there autoconfirmed users? [[User:Pro-anti-air|Pro-anti-air]] ([[User talk:Pro-anti-air|talk]]) 03:50, 9 November 2025 (UTC)
:I don't know what you want me to do exactly, as I cannot edits this page, import to this title, or move a page to this title. I have made [[User:Koavf/scripts/WikiShield.js]] if that helps. Ping me if you want me to do something. —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 04:03, 9 November 2025 (UTC)
:It's a global filter, pinging @[[User:Codename Noreste|Codename Noreste]]. [[User:Tanbiruzzaman|Tanbiruzzaman]] ([[User talk:Tanbiruzzaman|talk]]) 04:05, 9 November 2025 (UTC)
:@[[User:Pro-anti-air|Pro-anti-air]], to bypass the filter you need to make 2+ edit in other page. [[User:Tanbiruzzaman|Tanbiruzzaman]] ([[User talk:Tanbiruzzaman|talk]]) 04:07, 9 November 2025 (UTC)
::I'm confused, what rights do you get from editing more? Isn't autoconfirmed just 4 days? [[User:Pro-anti-air|Pro-anti-air]] ([[User talk:Pro-anti-air|talk]]) 04:10, 9 November 2025 (UTC)
: [[User:Koavf|Koavf]], [[User:Pro-anti-air|Pro-anti-air]], and [[User:Tanbiruzzaman|Tanbiruzzaman]]: I adjusted the global filter so that such false positives do not happen again. [[User:Codename Noreste|Codename Noreste]] ([[User talk:Codename Noreste|talk]]) 04:21, 9 November 2025 (UTC)
::Thank you! [[User:Pro-anti-air|Pro-anti-air]] ([[User talk:Pro-anti-air|talk]]) 04:26, 9 November 2025 (UTC)
:: @[[User:Codename Noreste|Codename Noreste]] Thank you so much!! [[User:LuniZunie|LuniZunie]] ([[User talk:LuniZunie|talk]]) 16:47, 9 November 2025 (UTC)
== Report concerning [[Special:Contributions/Tanbiruzzammn|Tanbiruzzammn]] ==
* {{vandal|Tanbiruzzammn}}
Vandalism. Long-term abuse. impersonation of User:Tanbiruzzaman[[User:TenWhile6| ]]<small>[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]</small> --[[User:MathXplore|MathXplore]] ([[User talk:MathXplore|talk]]) 13:44, 9 December 2025 (UTC)
:Account is locked. I nuked the pages. -[[User:Barras|<span style="color:blue; font-family:Bookman Old Style">'''Barras'''</span>]] [[User Talk:Barras|<span style="color:red; font-family:Bookman Old Style">'''talk'''</span>]] 21:45, 9 December 2025 (UTC)
== Report concerning [[Special:Contributions/Bucheon|Bucheon]] ==
* {{vandal|Bucheon}}
Long-term abuse[[User:TenWhile6| ]]<small>[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]</small> --[[User:PieWriter|PieWriter]] ([[User talk:PieWriter|talk]]) 10:25, 19 February 2026 (UTC)
== Versions and dates ==
On the [[Special:Version]] page, I see:
{| class="wikitable"
!Product
!Version
|-
|[https://www.mediawiki.org/ MediaWiki]
|[[mw:MediaWiki_1.46/wmf.17|1.46.0-wmf.17]] [[git:mediawiki/core/+/8644e6d2bb489940eb0028286386746dd40a5711|(8644e6d)]]
00:34, 3 March 2026
|}
which suggests that version .17 was released today, March 3rd.
However, the [[mw:MediaWiki_1.46/Roadmap|Roadmap]] says that version .18 should be released today instead.
Are these values out of synch or am I reading this wrong? [[Special:Contributions/~2026-13668-13|~2026-13668-13]] ([[User talk:~2026-13668-13|talk]]) 03:38, 3 March 2026 (UTC)
:I now see version .18 listed in that table:
:{| class="wikitable"
!Product
!Version
|-
|[https://www.mediawiki.org/ MediaWiki]
|[[mw:MediaWiki_1.46/wmf.18|1.46.0-wmf.18]] [[git:mediawiki/core/+/9784b5fa1e290e0ff423b8c68c1d061e910f9075|(9784b5f)]]
02:08, 3 March 2026
|}
:(And I've worked out how to put tables in replies.) [[Special:Contributions/~2026-13668-13|~2026-13668-13]] ([[User talk:~2026-13668-13|talk]]) 06:17, 3 March 2026 (UTC)
== Upcoming Wikimedia Café meetup regarding the [[:meta:Wikimedia Foundation Annual Plan/2026-2027|the 2026-2027 Wikimedia Foundation Annual Plan]] ==
{{tmbox
| image = [[File:Wikimedia Café logo in plain SVG format.svg|45px]]
| type=notice
| text = Hello! There will be a '''[[:meta:Wikimedia Café|Wikimedia Café]]''' meetup on '''Saturday, 11 April 2026 at 14:00 UTC''' ([https://zonestamp.toolforge.org/1775916000 timestamp conversion tool]), focusing on the [[:meta:Wikimedia Foundation Annual Plan/2026-2027|the 2026-2027 Wikimedia Foundation Annual Plan]]. The featured guests will be {{Noping|KStineRowe (WMF)|label1=Kelsi Stine-Rowe}} (senior manager, [[:meta:Movement Communications|Movement Communications]], Wikimedia Foundation), and {{Noping|Samwalton9 (WMF)|label1=Sam Walton}} (senior product manager, [[:mw:Moderator Tools|Moderator Tools]], Wikimedia Foundation). <br />
In addition to this Café session, [[:meta:Wikimedia Foundation Annual Plan/2026-2027/Collaboration|several additional meetings regarding the Annual Plan are listed on the Collaboration page]], and you may participate on the [[:meta:Talk:Wikimedia Foundation Annual Plan/2026-2027|talk page]]. <br />
This Café meetup will be approximately two hours long. Attendees may choose to attend only for a part. Please see the Café page for more information, including [[:meta:Wikimedia Café#Signups for the April 2026 session|how to register]]. <br />
[[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]
}}
<span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 03:46, 30 March 2026 (UTC)
== Changes to electionadmin userright ==
I'm [[phab:T423962|proposing]] that the following changes to the existing implementation of the <code>electionadmin</code> and <code>sysop</code> be made:
* Remove the <code>securepoll-create-poll</code> right from admins
* Rename <code>election-admin</code> to <code>electionclerk</code> (to match how the userright is used across global wikis)
* Give sysops the ability to grant <code>electionclerk</code> (again reflects, fawiki, zhwiki, and enwiki where the [[mw:Extension:SecurePoll|SecurePoll]] extension is deployed)
If folks have concerns about these changes, feel free to voice the concerns here or on the phab ticket :) [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 03:54, 21 April 2026 (UTC)
:+1 :) <span style="display:inline-block;">[[User:HouseBlaster|House]][[Special:Contribs/HouseBlaster|'''Blaster''']] ([[User talk:HouseBlaster|talk]] • he/they)</span> 05:13, 21 April 2026 (UTC)
:+1 since this is aligning with how securepoll is being deployed to the other projects. [[User:Robertsky|Robertsky]] ([[User talk:Robertsky|talk]]) 05:40, 21 April 2026 (UTC)
: +1 for easier testing, to align with other projects. [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 15:22, 23 April 2026 (UTC)
ciwrojdkmubt0rm6vcg1jwotpbolzjs
Stankonia
0
65734
739205
739167
2026-04-23T19:45:28Z
~2026-24891-14
73685
/* Weekly charts */
739205
wikitext
text/x-wiki
{{Use mdy dates|date=November 2025}}
{{Infobox album
| name = Stankonia
| type = studio
| artist = [[Outkast]]
| cover = OutKast - Stankonia.JPG
| border = yes
| alt =
| released = October 31, 2000
| recorded = 1999–2000
| studio = * Stankonia Recording Tree Sound Studios, [[Atlanta]]
* A&M Studios, [[Los Angeles]]
| genre = {{hlist|[[Southern hip-hop]]|[[progressive rap]]|[[funk]]|[[psychedelic rap]]}}
| length = 73:07
| label = {{hlist|[[LaFace]]|[[Arista Records|Arista]]}}
| producer = {{hlist|[[Earthtone III]]|[[Organized Noize]]|[[Carl Mo]]}}
| prev_title = [[Aquemini]]
| prev_year = 1998
| next_title = [[Big Boi and Dre Present... Outkast]]
| next_year = 2001
| misc = {{Singles
| name = Stankonia
| type = studio
| single1 = [[B.O.B (song)|B.O.B]]
| single1date = September 19, 2000
| single2 = [[Ms. Jackson]]
| single2date = October 24, 2000
| single3 = [[So Fresh, So Clean]]
| single3date = March 13, 2001
}}
}}
'''''Stankonia''''' is the fourth studio album by the American [[hip hop]] duo [[Outkast]], released on October 31, 2000, by [[LaFace Records]] and [[Arista Records]]. The album was recorded in the duo's recently purchased Atlanta recording facility, Stankonia Studios, which allowed for fewer time and recording constraints, and featured production work from [[Earthtone III]] (a production team consisting of Outkast and [[Mr. DJ]]) and longtime collaborators [[Organized Noize]].
For the follow-up to their 1998 album ''[[Aquemini]]'', the duo worked to create an expansive and experimental musical aesthetic, incorporating a diverse array of styles including [[funk]], [[Rave|rave music]], [[Psychedelic music|psychedelia]], [[Gospel music|gospel]], and [[Rock music|rock]] within a [[Southern hip-hop|Dirty South]]-oriented hip-hop context.<ref>{{cite web |url=http://www.allmusic.com/album/speakerboxxx-the-love-below-mw0000226528 |title=Speakerboxxx/The Love Below - OutKast |work=[[AllMusic]] |access-date=July 1, 2015 |author=Erlewine, Stephen Thomas |author-link=Stephen Thomas Erlewine}}</ref> During the recording sessions, [[André 3000]] began moving beyond traditional rapping in favor of a more melodic vocal style, an approach to which [[Big Boi]] and several other producers were initially unaccustomed. Lyrically, the duo touched upon a wide range of subject matters, including sexuality, politics, misogyny, African-American culture, parenthood, and introspection. ''Stankonia'' featured appearances from a variety of local musicians discovered by the group while they were visiting clubs in their native city of [[Atlanta]], [[Georgia (U.S. state)|Georgia]].
''Stankonia'' received universal acclaim from music critics upon its release and has since been regarded by many to be one of the greatest hip hop albums of all time. The album debuted at number two on the [[Billboard 200|''Billboard'' 200]] chart, selling over 530,000 copies in its first week. It was supported by three [[Single (music)|single]]s: "[[B.O.B (song)|B.O.B]]", "[[Ms. Jackson]]", and "[[So Fresh, So Clean]]"; "Ms. Jackson" became the group's first single to reach number one on the [[Billboard Hot 100|''Billboard'' Hot 100]]. At the [[44th Annual Grammy Awards]], Outkast won [[Best Rap Album]] for ''Stankonia'' and [[Best Rap Performance by a Duo or Group]] for "Ms. Jackson". In 2003, the album was ranked number 359 on ''[[Rolling Stone]]''<nowiki/>'s list of the "[[Rolling Stone's 500 Greatest Albums of All Time|500 Greatest Albums of All Time]]", 361 in a 2012 revision, and 64 in a 2020 reboot of the list.<ref>{{cite magazine |url=https://www.rollingstone.com/music/music-lists/500-greatest-albums-of-all-time-156826/outkast-stankonia-59408/ |year=2012 |title=500 Greatest Albums of All Time Rolling Stone's definitive list of the 500 greatest albums of all time |magazine=[[Rolling Stone]] |access-date=September 9, 2019}}</ref> A re-issue of the album for its twentieth anniversary with previously unreleased remixes was released on October 30, 2020.<ref>{{cite web |url=https://pitchfork.com/news/outkast-announce-20th-anniversary-stankonia-reissue/ |year=2020 |title=OutKast Announce 20th Anniversary Stankonia Reissue |work=[[Pitchfork (website)|Pitchfork]] |access-date=October 8, 2020}}</ref> Another re-issue for the twenty-fifth anniversary was released on October 31, 2025.<ref>{{Cite web |last=Pilley |first=Max |date=September 21, 2025 |title=OutKast announce 25th anniversary deluxe reissue of 'Stankonia' |url=https://www.nme.com/news/music/outkast-announce-25th-anniversary-deluxe-reissue-of-stankonia-3894119 |access-date=September 22, 2025 |website=NME |language=en-GB}}</ref>
==Background==
[[File:Flag of Stankonia.svg|thumb|left|The flag that is featured on the album cover of ''Stankonia'']]
In 1998, OutKast released their third album ''[[Aquemini]]'' to critical acclaim while diversifying and expanding their sound. The album's success also attracted national attention to the [[Southern hip hop]] scene.<ref name="Westhoff112">Westhoff, 2011. p. 112</ref> Having collaborated on the ''Aquemini'' track "[[Skew It on the Bar-B]]", the [[Wu-Tang Clan]] member [[Raekwon]] later recalled the duo's impact at the time: "Before that, the South just wasn't played in New York. But that song was hot, the flows was crazy. The cycle changed. It really opened up the door for Southern rappers."<ref name="Westhoff112"/>
In March 1998, OutKast purchased a studio near Northside Drive in [[Atlanta]]. Formerly owned by the [[contemporary R&B|R&B]] singer [[Bobby Brown]],<ref name="Steps">{{cite news |title=Steps to success OutKast's hard work and careful cultivation of an audience have led to unprecedented Grammy nominations |work=[[The Atlanta Journal-Constitution]] |date=February 26, 2002}}</ref> the studio was the first place the duo had ever recorded vocals together – on a remix of [[TLC (group)|TLC]]'s "[[What About Your Friends]]" (1992) – and held sentimental value for them.<ref name="Sentimental">{{cite web |url=https://books.google.com/books?id=7icEAAAAMBAJ&q=stankonia&pg=PA142 |title=Sentimental Journey |last=Bry |first=David |work=Vibe |publisher=Bob Guccione Jr. |date=December 2000 |access-date=July 8, 2012}} [https://archive.org/details/bub_gb_7icEAAAAMBAJ/page/n159/mode/2up Alt URL]</ref> Outkast named the studio "Stankonia", a word created by André 3000 as a [[portmanteau]] of the words "stank" (a slang synonym for "funky") and "Plutonia" (the title of a poster in his bedroom depicting a futuristic city).<ref name="Steps"/> As he explained, "Stankonia is this place I imagined where you can open yourself up and be free to express anything".<ref name="Poet/Playa">{{cite news |title=The poet and the playa: OutKast makes sweet music |last=Murray |first=Sonia |date=October 30, 2000 |work=[[The Atlanta Journal-Constitution]]}}</ref>
==Recording==
The recording of ''Stankonia'' began in the spring of 1999 and lasted for about a year.<ref name="Steps"/> Owning a studio helped the group expand creatively, as the duo did not need to worry about time constraints that would occur with a rented studio.<ref name="Sentimental"/> André 3000 observed, "You can sit there and fuck with just a kick and a snare all day long if you want to ... You're not working on the clock. Really, you're just working on your mind."<ref name="Sentimental"/> Big Boi spent the majority of the recording time in the studio, while André 3000 worked at home, creating beats and experimenting with an [[acoustic guitar]].<ref name="Steps"/> One song that came from a jam session on the guitar was "[[Ms. Jackson]]", the album's second single.<ref name="Steps"/> André 3000 also created song lyrics by writing words on the walls of his home: "I had planned to paint my house anyway; writing on the walls was just something I would do."<ref name="100greatest">{{cite web |url=https://books.google.com/books?id=p6-UYTO7l1MC&q=stankonia+gasoline+dreams&pg=PA78 |title=100 Greatest Albums, 1985-now: Stankonia |work=Spin |publisher=Bob Guccione, Jr. |date=July 2005 |access-date=July 8, 2012}}</ref> One stray lyric on his wall eventually developed into "Gasoline Dreams".<ref name="100greatest"/>
Much of the album was formulated during "vibe sessions" in which the group and producers would visit clubs in downtown Atlanta, select performers they saw, and invite them to the studio.<ref name="Mojo">{{cite book |url=https://books.google.com/books?id=AVQbF9lTBwgC&q=stankonia&pg=PA681 |title=Outkast - Stankonia |work=The Mojo Collection: 4th Edition |isbn=9781847676436 |access-date=July 8, 2012 |last1=Magazine |first1=Various Mojo |date=November 2007 |publisher=Canongate Books}}</ref> They would then "sit around, smoke a few, drink a few", and create ideas for new songs.<ref name="Mojo"/> However, recording sessions became difficult as André 3000 grew tired of rapping on songs, which made Big Boi and the producers uneasy about how the music would sound.<ref name="Steps"/> To maintain musical cohesion with Big Boi while continuing to expand his vocal palette, André decided to combine rapping with [[Soul music|soul]]-inspired crooning, which had a major influence on ''Stankonia'''s sound.<ref name="Steps"/> "Snappin & Trappin'" features a guest appearance from the then-unknown rapper [[Killer Mike]]. The rapper noted that while working with Outkast, he used the opportunity to try to "compete" with the duo to improve his rapping skills.<ref name="killermike">{{cite web |url=https://books.google.com/books?id=vyYEAAAAMBAJ&q=outkast+stankonia+snappin&pg=PA61 |title=Killer Mike: By the Book |last=Hsu |first=Hua |work=[[Vibe (magazine)|Vibe]] |publisher=Vibe Media Group |date=January 2003 |access-date=July 10, 2012}}{{Dead link|date=June 2024 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Big Boi was impressed with Killer Mike's abilities, noting, "When I first heard him spit, his voice was just so commanding. He's a very intelligent guy."<ref name="killermike"/>
==Composition==
===Music and style===
{{Listen|pos = right
|filename = Outkast-bob.ogg
|title = "B.O.B. (Bombs Over Baghdad)"
|description = The song "B.O.B. (Bombs Over Baghdad)" contains elements of [[drum and bass]] music in addition to combining guitars, organs, and gospel vocals. André 3000 and Big Boi's raps keep pace with the quick tempo of the track.
}}
While OutKast's previous albums were considered to be laid-back, mellow efforts, ''Stankonia'' contains faster, more high-energy tempos, partially to reflect the "chaotic times" at the end of the 20th century.<ref name="Braves">{{cite web |url=https://books.google.com/books?id=5CoEAAAAMBAJ&q=atliens&pg=PA44 |title=Atlanta's Braves |last=Caramanica |first=Jon |work=CMJ New Music Monthly |date=November 2000 |access-date=July 8, 2012}}</ref> The group took note of new, harder drugs hitting the hip-hop scene and teenagers using [[ecstasy (drug)|ecstasy]], [[cocaine]], and [[methamphetamine]].<ref name="Braves"/> Big Boi reflected, "Niggas living this life at a fast speed don't know what's going on around them. If you live fast, you gonna come out of here real fast, so the music need to show that."<ref name="Braves"/> While recording ''Stankonia'', the band refrained from listening to hip-hop, "That music was starting to sound real comfortable. There wasn't any adventure to it."<ref name="Moon569">Moon, 2008. p. 569</ref> Instead, the duo drew influence from musicians such as [[Jimi Hendrix]], [[Little Richard]], [[Prince (musician)|Prince]], and [[George Clinton (funk musician)|George Clinton]],<ref name="mic"/> as well as Clinton's [[Parliament-Funkadelic]] collective.<ref name="Pareles"/> However, the band refrained from producing a [[Retro style|throwback]] sound with the record and instead hoped to utilize these influences in a modern, experimental fashion.<ref name="Electric">{{cite web |url=https://books.google.com/books?id=yCUEAAAAMBAJ&q=stankonia+platinum&pg=PA88 |title=Electric Warriors |work=[[Vibe (magazine)|Vibe]] |date=February 2002 |access-date=July 10, 2012}}{{Dead link|date=June 2024 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> André 3000 stated that "I don't want this to be the generation that went back to '70s rock. You gotta take it and do new things with it."<ref name="mic"/>
On ''Stankonia'', OutKast experimented with a wide variety of musical genres. According to M. Matos of ''[[Vibe (magazine)|Vibe]]'', ''Stankonia'' "turned the South's predominantly reclined hip-hop sound into something freaky and menacing."<ref name="100greatest"/> [[AllMusic]]'s Steve Huey said their experimentation resulted in "a trippy sort of [[techno]]-[[psychedelic funk]]".<ref name="Allmusicrev"/> "B.O.B" features "jittery [[drum'n'bass]] rhythms" and has been classified as a "stylistic tour de force" combining "[[Jimi Hendrix|Hendrix]]-ian" guitars, organs, and [[Gospel music|gospel]] vocals.<ref name="Wang133">Wang, 2003. p. 133</ref><ref name="Allmusicrev">{{cite web |url=http://www.allmusic.com/album/stankonia-mw0000252371 |title=Stankonia - Outkast - Review |last=Huey |first=Steve |work=[[AllMusic]] |access-date=July 8, 2012}}</ref> On the track, André 3000 and Big Boi employ a "frantic" flow to keep pace with the song's high-speed tempo, which runs at 155 beats per minute.<ref name="thedish">{{cite web |url=https://books.google.com/books?id=yicEAAAAMBAJ&q=outkast+frantic&pg=PA172 |title=The dish on the latest cuts: Outkast's "B.O.B" |last=Kim |first=Hyun |work=[[Vice (magazine)|Vibe]] |date=October 2000 |access-date=July 9, 2012}}{{Dead link|date=June 2024 |bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref name="Hess465">Hess, 2007. p. 465</ref> "Humble Mumble" is a [[Salsa music|salsa]]-influenced track that evolves into a club groove, while "Ms. Jackson" "marries early Prince with late [[P-Funk]]".<ref name="Braves"/><ref name="Mold">{{cite magazine |url=https://books.google.com/books?id=0RAEAAAAMBAJ&q=stankonia+humble+mumble&pg=PA38 |title=Outkast Breaks Hip-Hop Mold |last=Kenon |first=Marci |magazine=[[Billboard (magazine)|Billboard]] |date=September 23, 2000 |access-date=July 8, 2012}}</ref> The smooth melodies of "I'll Call B4 I Cum" have also been likened to [[Prince (musician)|Prince]].<ref name="Sentimental"/><ref name="RSguide">Brackett, Nathan. Hoard, Christian. p. 610</ref> "Gasoline Dreams" has been classified as a "gritty rock scorcher" comparable to the work of [[Public Enemy]].<ref name="Crazy Horse183">Crazy Horse, p. 183</ref> David Bry of ''Vibe'' detected a "polished 80's pimp strut" in "So Fresh, So Clean" and an "appreciative, fat-ass bounce" in "We Luv Deez Hoes".<ref name="Best Group">{{cite web |url=https://books.google.com/books?id=xiUEAAAAMBAJ&q=stankonia+we+luv&pg=PA76 |title=Best Group: Outkast |last=Bry |first=David |work=[[Vibe (magazine)|Vibe]] |date=January 2002 |access-date=July 8, 2012}}{{Dead link|date=June 2024 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> The album ends with three [[Psychedelic music|psychedelic]]-influenced tracks, "Toilet Tisha", "Slum Beautiful", and "Stankonia (Stank Love)".<ref name="Best Group"/> "Stankonia (Stank Love)" has also been described as an "homage of sorts" to gospel choirs and '60s [[doo-wop]] groups, while also including a slowed down coda reminiscent of [[Chopped and screwed|chopped and screwed hip hop]].<ref name="Brev">{{cite magazine |url=https://archive.org/details/bub_gb_uRAEAAAAMBAJ |page=[https://archive.org/details/bub_gb_uRAEAAAAMBAJ/page/n26 25] |quote=stankonia humble mumble. |title=Stankonia - Review |magazine=[[Billboard (magazine)|Billboard]] |date=November 4, 2000 |access-date=July 8, 2012}}</ref>
===Lyrics===
{{quote box|quoted = 1|quote=I think what's really interesting about this album is that it is absolutely [[Southern hip-hop]], but there is a part that is very conscious of the world around them. You're seeing these dichotomies play out, the sort of balance between mainstream hip-hop and the [[conscious hip-hop]] era. We have to remember that, at this particular time, those two genres are starting to branch off. And the thing is, ''Stankonia'' encompasses all that.|source=— Christina Lee, ''[[NPR Music]]''<ref>{{cite web |last1=Bradley |first1=Regina |last2=Lee |first2=Christina |last3=Godfrey |first3=Gavin |date=November 18, 2020 |url=https://www.npr.org/2020/11/18/934594401/outkast-stankonia-threw-us-to-the-wilderness |title=OutKast's 'Stankonia' Threw Us to the Wilderness |website=[[NPR Music]] |access-date=July 17, 2021}}</ref>|align=right|width=25em|style=padding:8px;|border=1px}}
According to [[Miles Marshall Lewis]], ''Stankonia'' is among the most "eclectic" of mainstream [[progressive rap]] albums from its time.<ref name="lewis">{{cite news |last=Lewis |first=Miles Marshall |authorlink=Miles Marshall Lewis |date=August 9, 2007 |url=https://www.dallasobserver.com/music/common-6375880 |title=Common |newspaper=[[Dallas Observer]] |access-date=July 14, 2021}}</ref> [[Paul Lester]] of ''[[The Guardian]]'' described OutKast's lyrical style on the album by saying, "They are, in a way, post-hip-hop, combining [[PM Dawn]]'s kooky confections with the [[Pharcyde]]'s hallucinatory whimsy, [[Public Enemy]]'s hardline politicking with [[De La Soul]]'s cartoon dementia, to fashion something vital and new."<ref name="Rhyme">{{cite web |title=Partners in Rhyme: Outkast |last=Lester |first=Paul |author-link=Paul Lester |work=[[The Guardian]] |date=May 18, 2001 |url=https://www.rocksbackpages.com/Library/Article/partners-in-rhyme-outkast |url-access=subscription}} Hosted by rocksbackpages.com.</ref> "Gasoline Dreams" assails the "[[bling-bling]]" aspirations of contemporary black culture, instead presenting a sobering view of circumstances upending the world in Outkast's perspective ("I hear that Mother Nature's now on birth control / The coldest pimp be lookin' for somebody to hold").<ref name="Sarig"/> "Red Velvet" discusses the materialistic nature of the hip hop scene in particular,<ref name="Rhyme"/> while "Humble Mumble" addresses critics who make negative assumptions about hip hop based on preconceived notions; André 3000 raps in the song: "I met a critic / I made her shit her draws / She said she thought hip hop was only guns and alcohol / I said oh hell naw / but yet it's that too / You can't discrima-hate cause you done read a book or two."<ref name="Boyd59">Boyd, 2003. p. 59</ref>
The album commonly features the words "stank" and "smell" in their [[blues]]-rooted definition to mean "low-down, blunt, pungent: a measure of authenticity".<ref name="Tucker"/> Outkast often incorporates [[word play]] into the lyrics, including "Humble Mumble"{{'}}s references to the "[[Underground Railroad|underground smellroad]]" and chants of "I stank I can, I stank I can", an allusion to ''[[The Little Engine That Could]]''.<ref name="Tucker"/> The duo offers encouragement for maturity and facing adversity on the song, beginning with Big Boi's verse advising that "everything in life don't always happen like it's supposed to" while referencing [[Isaiah 54]]:17 ("No weapon formed against me prospers"). Meanwhile, André 3000 frames his perspective in the context of progressing African Americans collectively: "The game changes every day, so obsolete is the fist and marches / Speeches only reaches those who already know about it". [[Erykah Badu]], his ex-girlfriend and friend at the time, concludes "Humble Mumble" with a "soaring [[metaphysical]] gospel verse that celebrate[s] the circle of life", as pop-culture writer Roni Sarig details.<ref name="Sarig">{{cite book |page=186 |last=Sarig |first=Roni |year=2007 |title=Third Coast: Outkast, Timbaland, and How Hip-hop Became a Southern Thing |publisher=[[Hachette Books]] |isbn=9780306814303}}</ref>
Much of the album discusses the status of women in the South, and contrasts with the [[Misogyny in rap music|misogynistic attitudes common in hip hop music]]. In the book ''Classic Material: The Hip-Hop Album Guide'', contributing author Tony Green writes that songs such as "Slum Beautiful" and "Toilet Tisha" "reimagine 'round the way girls, not only as just more than one-dimensional accessories, but as objects of affection with lives and concerns that are worth exploring."<ref name="Wang133"/> In "Toilet Tisha", the duo empathizes with suicidal pregnant teenagers.<ref name="Rhyme"/> "Ms. Jackson" is dedicated to the mother of a mother of an out-of-wedlock child, which André 3000 refers to as "the baby's mama's mamas".<ref name="Sentimental"/><ref name="Allmusicrev"/> Inspired by his relationship with Badu, who had given birth to their son Seven, the song serves as an apology to a "baby mama"'s mother for causing her daughter pain.<ref name="Screen">{{cite web |url=https://books.google.com/books?id=-CcEAAAAMBAJ&q=ms.+jackson+erykah+badu&pg=PA164 |title=Talk Video: Ms. Jackson |last=Johnson Jr. |first=Billy |work=Vibe |publisher=Vibe Media Group |date=November 2000 |access-date=July 8, 2012}}{{Dead link|date=June 2024 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> "I'll Call Before I Come" discusses the members putting a woman's sexual needs before their own.<ref name="iceage"/>
==Commercial performance==
[[File:OutKast 2001.jpg|thumb|upright|left|Outkast performing in promotion of ''Stankonia'' at the [[Area Festival]] in 2001]]
''Stankonia'' debuted at number two on the [[Billboard 200|''Billboard'' 200]] album chart, selling 525,844 copies in its first week,<ref>{{cite web |url=http://www.canoe.com/MusicArtistsU2/nov8_u2-can.html |archive-url=https://web.archive.org/web/20041028043516/http://www.canoe.com/MusicArtistsU2/nov8_u2-can.html |url-status=dead |archive-date=October 28, 2004 |title=U2 debuts at #1 in Canada |date=November 8, 2000 |access-date=April 18, 2020}}</ref> behind [[Jay-Z]]'s ''[[The Dynasty: Roc La Familia]]''; which sold 557,789 copies, and ahead of [[U2]]'s ''[[All That You Can't Leave Behind]]'', which finished in third place in the U.S. The album was certified [[RIAA certification|gold]] by the [[Recording Industry Association of America]] (RIAA) within its first week of release.<ref name="iceage">{{cite web |url=https://books.google.com/books?id=YzBMbiDVcKoC&q=stankonia&pg=PA85 |title=The End of the Ice Age? |last=Jenkins |first=Sacha |date=March 2001 |access-date=July 8, 2012 |work=Spin |publisher=Bob Guccione, Jr.}}</ref> It also reached number two on the ''Billboard'' R&B/Hip-Hop albums chart, remaining on the chart for 45 weeks.<ref name="bbcharts">{{cite magazine |url={{BillboardURLbyName |artist=outkast |chart=all}} |title=Chart History: Outkast - Stankonia |magazine=Billboard |access-date=July 11, 2012}}</ref> By February 2002, the album has sold 3.79 million copies, according to [[Nielsen SoundScan]].<ref name="Basham">{{cite web |last=Basham |first=David |date=February 28, 2002 |url=http://www.mtv.com/news/articles/1452682/got-charts-o-brother-sales-boost-likely.jhtml |archive-url=https://web.archive.org/web/20121111120425/http://www.mtv.com/news/articles/1452682/got-charts-o-brother-sales-boost-likely.jhtml |url-status=dead |archive-date=November 11, 2012 |title=Got Charts? Expect 'O Brother' Sales Boost After Unexpected Win |publisher=MTV News |access-date=July 12, 2012}}</ref> On November 3, 2003, ''Stankonia'' was certified quadruple platinum, for shipments of four million copies.<ref name="RIAA_cert">{{cite web |url=https://www.riaa.com/goldandplatinumdata.php?artist=%22Stankonia%22 |publisher=[[Recording Industry Association of America]] |title=Gold & Platinum RIAA Certifications 2003 |date=November 3, 2003 |access-date=July 10, 2012}}</ref> In Canada, the album peaked at number four, and was certified double platinum by the [[Canadian Recording Industry Association]] on September 23, 2003, for shipments of over 200,000 units.<ref name="bbcharts"/><ref name="CanadianCert">{{cite web |title=Gold & Platinum Certification - Outkast |publisher=[[Canadian Recording Industry Association]] |url=http://www.musiccanada.com/GPSearchResult.aspx?st=&ica=False&sa=Outkast&sl=&smt=0&sat=-1&ssb=Artist |access-date=May 19, 2007 |archive-date=May 2, 2012 |archive-url=https://web.archive.org/web/20120502114144/http://musiccanada.com/GPSearchResult.aspx?st=&ica=False&sa=outkast&sl=&smt=0&sat=-1&ssb=Artist |url-status=dead}}</ref> The record also became a top ten hit in Germany, Finland, and Norway, reaching the number six, number eight, and number eight spots on the countries' official charts, respectively.<ref name="germanycharts">{{cite web |url=http://www.officialcharts.de/album.asp?artist=OutKast&title=Stankonia&country=de |archive-url=https://archive.today/20140707095402/http://www.officialcharts.de/album.asp?artist=OutKast&title=Stankonia&country=de |url-status=dead |archive-date=July 7, 2014 |title=Chartverfolgung / Outkast / Longplay |language=de |publisher=[[Media Control]]. PhonoNet GmbH |access-date=August 22, 2011}}</ref><ref name="finchart">{{cite web |url=http://finnishcharts.com/showitem.asp?interpret=OutKast&titel=Stankonia&cat=a |title=Outkast – Stankonia |language=nl |publisher=[[The Official Finnish Charts]]. Hung Medien |access-date=August 18, 2011}}</ref><ref name="norchart">{{cite web |url=http://norwegiancharts.com/showitem.asp?interpret=OutKast&titel=Stankonia&cat=a |title=Outkast – Stankonia |language=fr |publisher=[[VG-lista]]. Hung Medien |access-date=August 18, 2011}}</ref>
The lead single released from ''Stankonia'', "B.O.B", peaked at number 69 on the R&B/Hip-Hop songs chart.<ref name="BOBcharts">{{cite magazine |url={{BillboardURLbyName |artist=outkast |chart=all}} |title=Chart History: Outkast - B.O.B |magazine=Billboard |access-date=July 11, 2012}}</ref> However, the single was banned from many urban Top 40 radio stations due to its title and the subject matter it was assumed to have.<ref name="Hess465"/> On February 3, 2001, "Ms. Jackson" topped the R&B/Hip-Hop songs chart, and then on February 17, the single also reached number one on the Hot 100, remaining on the chart for 22 weeks.<ref name="jacksoncharts">{{cite magazine |url={{BillboardURLbyName |artist=outkast |chart=all}} |title=Chart History: Outkast - Ms. Jackson |magazine=Billboard |access-date=July 11, 2012}}</ref> The song also reached number 13 on the ''Billboard'' Pop Songs chart, as well as number three on the magazine's Radio Songs chart.<ref name="jacksoncharts"/> The third single, "So Fresh, So Clean", peaked at number 30 on the Hot 100, and stayed on the chart for 20 weeks.<ref name="sofreshcharts">{{cite magazine |url={{BillboardURLbyName |artist=outkast |chart=all}} |title=Chart History: Outkast - So Fresh, So Clean |magazine=Billboard |access-date=July 11, 2012}}</ref> The single also peaked at number ten on the ''Billboard'' R&B/Hip-Hop songs chart, and number 24 on the Radio songs chart.<ref name="sofreshcharts"/>
{{Clear}}
==Critical reception==
{{Music ratings
| MC = 95/100<ref name="MC">{{cite web |url=http://www.metacritic.com/music/stankonia/outkast |title=Reviews for Stankonia by Outkast |publisher=[[Metacritic]] |access-date=April 5, 2013}}</ref>
| rev1 = [[AllMusic]]
|rev1Score = {{Rating|5|5}}<ref name="Huey">{{cite web |url=http://www.allmusic.com/album/stankonia-mw0000252371 |title=Stankonia – OutKast |work=[[AllMusic]] |access-date=March 31, 2010 |last=Huey |first=Steve}}</ref>
| rev2 = ''[[Alternative Press (magazine)|Alternative Press]]''
| rev2score = 5/5<ref name="AlternativePress">{{cite magazine |title=OutKast: Stankonia |magazine=[[Alternative Press (magazine)|Alternative Press]] |issue=149 |date=December 2000 |location=Cleveland |page=108}}</ref>
| rev3 = ''[[Entertainment Weekly]]''
| rev3Score = A<ref name="Tucker">{{cite magazine |url=https://ew.com/article/2000/10/30/stankonia/ |title=Stankonia |magazine=[[Entertainment Weekly]] |date=October 30, 2000 |access-date=August 25, 2023 |last=Tucker |first=Ken |author-link=Ken Tucker}} The archived link [https://web.archive.org/web/20151129131005/http://www.ew.com/article/2000/11/03/stankonia shows the 'A' score].</ref>
| rev4 = ''[[The Guardian]]''
| rev4Score = {{Rating|5|5}}<ref>{{cite news |url=https://www.theguardian.com/friday_review/story/0,3605,394987,00.html |title=OutKast: Stankonia (Arista) |work=[[The Guardian]] |location=London |date=November 10, 2000 |access-date=March 3, 2016 |last=Lester |first=Paul}}</ref>
| rev5 = ''[[Los Angeles Times]]''
| rev5Score = {{Rating|4|4}}<ref name="Latimes">{{cite news |url=https://www.latimes.com/archives/la-xpm-2000-nov-30-ca-59075-story.html |title=Time to Give 'Em an Earful |work=[[Los Angeles Times]] |date=November 30, 2000 |access-date=March 4, 2020 |archive-url=https://web.archive.org/web/20121013102121/http://articles.latimes.com/2000/nov/30/entertainment/ca-59075/2 |archive-date=October 13, 2012 |url-status=live}}</ref>
| rev6 = ''[[NME]]''
| rev6Score = {{Rating|4.5|5}}<ref name="Bardowell">{{cite magazine |url=http://www.nme.com/reviews/outkast/3412 |title=Stankonia |magazine=[[NME]] |location=London |date=November 18, 2000 |access-date=July 11, 2012 |last=Bardowell |first=Derek A. |archive-url=https://web.archive.org/web/20121016211200/http://www.nme.com/reviews/outkast/3412 |archive-date=October 16, 2012 |url-status=dead |page=41}}</ref>
| rev7 = ''[[Pitchfork (website)|Pitchfork]]''
| rev7Score = 9.5/10<ref>{{cite web |url=https://pitchfork.com/reviews/albums/outkast-stankonia/ |title=OutKast: Stankonia |work=[[Pitchfork (website)|Pitchfork]] |date=February 11, 2018 |access-date=February 11, 2018 |last=Ex |first=Kris}}</ref>
| rev8 = ''[[Rolling Stone]]''
| rev8Score = {{Rating|4|5}}<ref name="Brackett">{{cite magazine |url=https://www.rollingstone.com/music/albumreviews/stankonia-20001026 |title=Stankonia |magazine=[[Rolling Stone]] |location=New York |date=October 26, 2000 |access-date=May 16, 2012 |last=Brackett |first=Nathan |archive-url=https://web.archive.org/web/20071012184415/http://www.rollingstone.com/artists/outkast/albums/album/302328/review/6067606/stankonia |archive-date=October 12, 2007 |url-status=live}}</ref>
| rev9 = ''[[USA Today]]''
| rev9Score = {{Rating|4|4}}<ref>{{cite news |url=https://www.usatoday.com/life/music/music351.htm |title=Outkast visits new territory on 'Stankonia' |work=[[USA Today]] |location=McLean |date=October 31, 2000 |access-date=July 11, 2012 |last=Jones |first=Steve |archive-url=https://web.archive.org/web/20001109081200/http://www.usatoday.com/life/music/music351.htm |archive-date=November 9, 2000 |url-status=dead}}</ref>
| rev10 = ''[[The Village Voice]]''
| rev10Score = A<ref name="Christgau">{{cite news |url=http://www.robertchristgau.com/xg/cg/cgv1100-00.php |title=Consumer Guide: Getting Bizzy |work=[[The Village Voice]] |location=New York |date=December 5, 2000 |access-date=April 5, 2013 |last=Christgau |first=Robert |author-link=Robert Christgau}}</ref>
}}
''Stankonia'' received universal acclaim from contemporary [[music critics]]. At [[Metacritic]], which assigns a [[standard score|normalized]] rating out of 100 to reviews from mainstream critics, the album received an [[weighted mean|average]] score of 95, based on 20 reviews.<ref name="MC"/> Derek A. Bardowell of ''[[NME]]'' noted that with ''Stankonia'', OutKast "hit that rare balance of creative eccentricity and mass appeal" and wrote that the album contains "eternal qualities that will unravel in time on an emotional, intellectual and spiritual level."<ref name="Bardowell"/> Nathan Brackett of ''[[Rolling Stone]]'' called the record "one of the best albums of the year", noting that all of the tracks contain "a down-home generosity and accessibility" and that "even the most street-oriented songs have some sort of commentary in them."<ref name="Brackett"/> Tony Green of ''[[The Village Voice]]'' praised OutKast's "feel for sonics and structure" and stated, "they've moved toward harder, darker textures, in service of song designs that are often disarmingly subtle."<ref name="Green">{{cite news |url=http://www.villagevoice.com/2000-10-31/music/make-my-crunk-the-p-funk/1 |archive-url=https://web.archive.org/web/20081208172731/http://www.villagevoice.com/2000-10-31/music/make-my-crunk-the-p-funk/1 |url-status=dead |archive-date=December 8, 2008 |title=Make My Crunk the P-Funk |work=[[The Village Voice]] |location=New York |date=October 31, 2000 |access-date=October 10, 2009 |last=Green |first=Tony}}</ref> Steve Huey of [[AllMusic]] commented that, "given the variety of moods, it helps that the album is broken up by brief, usually humorous interludes, which serve as a sort of reset button. It takes a few listens to pull everything together, but given the immense scope, it's striking how few weak tracks there are".<ref name="Huey"/> Aishah Hight of ''[[PopMatters]]'' stated, "Within ''Stankonia'', Outkast successfully presented a southern perspective of life, liberty, and the pursuit of happiness. But on the surface, phat beats and pure funk should suffice."<ref name="Hight">{{cite web |url=http://www.popmatters.com/pm/review/outkast-stankonia/ |title=Outkast – Stankonia |work=[[PopMatters]] |access-date=October 10, 2009 |last=Hight |first=Aishah}}</ref> ''[[Alternative Press (magazine)|Alternative Press]]'' commented that "experienced, acclaimed groups rarely make albums as bold and confrontational as ''Stankonia'', because they have too much to lose", but felt that "OutKast don't care", writing that they "coalesced the political and societal challenges of hip hop's past into what is one of the genre's most artistically unorthodox releases so far."<ref name="AlternativePress"/>
[[Robert Christgau]] of ''The Village Voice'' observed "more bounce-to-the-ounce and less molasses in the jams, more delight and less braggadocio in the raps", and opined that Big Boi and André 3000's "realism and high spirits drive each other higher".<ref name="Christgau"/> ''[[Entertainment Weekly]]''{{'}}s [[Ken Tucker]] wrote that "''Stankonia'' reeks of artful ambition rendered with impeccable skill" and described OutKast as "endlessly good-humored and imaginative even when dealing with the most grim and mind-deadening facets of ghetto life."<ref name="Tucker"/> [[Yahoo! Music]]'s Soren Baker commented that "Dre and Big Boi again reinvent themselves, this time as [[Parliament (band)|Parliament]]-inspired musicians who specialize on male-female relationships, boasting, and out-there lyrics."<ref name="Baker">{{cite web |url=http://ca.music.yahoo.com/read/review/12053892 |title=Stankonia |publisher=[[Yahoo! Music]]. [[Yahoo!]] |access-date=May 16, 2012 |last=Baker |first=Soren |archive-url=https://web.archive.org/web/20060925105559/http://ca.music.yahoo.com/read/review/12053892 |archive-date=September 25, 2006}}</ref> Baker concluded in his review, "With another nearly flawless album, OutKast arguably solidifies their reputation as one of the best hip-hop groups of all time."<ref name="Baker"/> The ''Los Angeles Times'' opined that "the record's most interesting moments are gorgeous Prince-style soul."<ref name="Latimes"/> [[Jon Pareles]] of ''[[The New York Times]]'' wrote that "OutKast's music savors the viscous propulsion of funk, with raps and tunes that never ignore the body and its instinctive desires ... Yet OutKast – taking cues from a band it obviously reveres, [[Parliament-Funkadelic]] – never forgets that bodies are attached to minds."<ref name="Pareles">{{cite news |url=https://www.nytimes.com/2000/10/29/arts/music-rappers-turn-dialectic-into-a-conversation.html |title=Rappers Turn Dialectic Into a Conversation |work=[[The New York Times]] |date=October 29, 2000 |access-date=October 10, 2009 |last=Pareles |first=Jon |author-link=Jon Pareles}}</ref> ''[[URB (magazine)|URB]]'' called the album "a complex tome that enmeshes contemporary hip-hop values with a timeless Southern soul, while pushing the envelope damn near off the table."<ref name="URB">{{cite magazine |title=OutKast: Stankonia |magazine=[[URB (magazine)|URB]] |volume=10 |issue=79 |date=November 2000 |page=134}}</ref> ''[[Mojo (magazine)|Mojo]]'' called it "hip hop with the power to convert even the most reactionary nonbelievers."<ref name="Mojoreview">{{cite magazine |title=OutKast: Stankonia |magazine=[[Mojo (magazine)|Mojo]] |location=London |issue=93 |date=August 2001 |page=107}}</ref>
==Legacy and influence==
[[File:RaveOn.jpg|thumb|With the release of ''Stankonia'', OutKast became the first hip hop group to openly acknowledge [[rave culture]] as an influence.]]
''Stankonia'' has received many accolades and appeared on many magazines' "best of" lists; in his book ''Dirty South'', author Ben Westhoff noted that the album appeared on "every critical best-list worth mentioning."<ref name="Westhoff112"/> At the [[2002 Grammy Awards]], OutKast won [[Best Rap Album]] for ''Stankonia'' and [[Best Rap Performance by a Duo or Group]] for "Ms. Jackson".<ref name="Hess465"/> Despite OutKast's being expected favorites, [[Grammy Awards|The Recording Academy]] instead chose the 2000 soundtrack album ''[[O Brother, Where Art Thou? (soundtrack)|O Brother, Where Art Thou?]]'' for [[Grammy Award for Album of the Year|Album of the Year]].<ref name="Basham"/> Before the group's nominations, much of the hip hop community felt that rappers were not being awarded enough attention from The Recording Academy.<ref name="nolonger">{{cite web |url=https://www.usatoday.com/life/music/grammy2002/2002-02-12-rap.htm |title=Hip-hop no longer a Grammy outcast |last=Jones |first=Steve |work=USA Today |date=February 11, 2002 |access-date=July 12, 2012}}</ref> However, the album's musical diversity allowed the band to reach a wider audience and was credited for opening the academy up to more hip hop musicians.<ref name="nolonger"/>
In 2006, ''[[Time (magazine)|Time]]'' named ''Stankonia'' as one of the 100 best albums of all time.<ref>{{cite magazine |url=http://www.time.com/time/2006/100albums/index.html |archive-url=https://web.archive.org/web/20061201085911/http://www.time.com/time/2006/100albums/index.html |url-status=dead |archive-date=December 1, 2006 |magazine=Time |title=All-Time 100 Albums |date=November 2, 2006}}</ref> ''[[Rolling Stone]]'' ranked the album number 16 on the magazine's list of the 100 Best Albums of the 2000s.<ref name="100best">{{cite magazine |url=https://www.rollingstone.com/music/lists/100-best-albums-of-the-2000s-20110718/outkast-stankonia-19691231 |title=100 Best Albums of the 2000s: Outkast, 'Stankonia' |magazine=Rolling Stone |date=July 18, 2011 |access-date=February 18, 2012}}</ref> In 2009, ''[[Pitchfork (website)|Pitchfork]]'' ranked ''Stankonia'' number 13 on its list of the top 200 albums of the 2000s, and [[Rhapsody (online music service)|Rhapsody]] ranked it at number 2 on its "100 Best Albums of the Decade" list.<ref>[http://pitchfork.com/features/staff-lists/7710-the-top-200-albums-of-the-2000s-20-1/1/ The Top 200 Albums of the 2000s: 13) ''Stankonia'']. ''[[Pitchfork (website)|Pitchfork]]''. Retrieved October 10, 2010.</ref><ref>[http://blog.rhapsody.com/2009/12/100-best-pop-albums-of-the-decade-10-1.html "Rhapsody's 100 Best Albums of the Decade"] {{webarchive|url=https://web.archive.org/web/20101102055657/http://blog.rhapsody.com/2009/12/100-best-pop-albums-of-the-decade-10-1.html |date=November 2, 2010 }} Retrieved January 12, 2010.</ref> Rhapsody also ranked the album number 6 on its "Hip-Hop's Best Albums of the Decade" list.<ref>[http://blog.rhapsody.com/2009/10/hiphopdecade.html "Hip-Hop's Best Albums of the Decade"] {{webarchive|url=https://web.archive.org/web/20120924071122/http://blog.rhapsody.com/2009/10/hiphopdecade.html |date=September 24, 2012 }} Retrieved January 12, 2010.</ref> ''Vibe'' ranked the record at number 23 on its list of the "100 Greatest Albums from 1985 to 2005".<ref name="100greatest"/> ''[[Entertainment Weekly]]'' put it on its end-of-the-decade "best-of" list, saying, "With hummable hits ('Ms. Jackson') and out-there experiments ('B.O.B.'), the rap duo gave us all a visa to the funky if fictional land of Stankonia in 2000."<ref>{{cite magazine |author=Staff |date=December 4, 2009 |url=https://ew.com/article/2009/12/04/100-greatest-movies-tv-shows-and-more/ |title=100 greatest movies, TV shows and more |magazine=[[Entertainment Weekly]] |access-date=January 16, 2023}}</ref> ''[[Q magazine|Q]]'' listed ''Stankonia'' as one of the best 50 albums of 2001.<ref>{{cite news |title=The Best 50 Albums of 2001 |magazine=Q |date=December 2001 |pages=60–65}}</ref> The album was also included in the book ''[[1001 Albums You Must Hear Before You Die]]''.<ref>{{cite book |first1=Robert |last1=Dimery |first2=Michael |last2=Lydon |title=1001 Albums You Must Hear Before You Die: Revised and Updated Edition |date=March 23, 2010 |publisher=Universe |isbn=978-0-7893-2074-2}}</ref> In 2024, [[Paste Magazine]] ranked ''Stankonia'' number 6 on its list of the greatest albums of all time.<ref>{{cite web |url=https://www.pastemagazine.com/music/greatest-albums/the-300-greatest-albums-of-all-time-2 |title=The 300 Greatest Albums of All Time |website=[[Paste (magazine)|Paste]] |last=Sharples |first=Grant |date=June 3, 2024 |access-date=December 12, 2024}}</ref> In 2015, ''[[Mic.com|Mic]]'' stated that "Stankonia helped hip-hop build its foundation in the mainstream," adding that in addition to the "irresistibly quotable" hit singles, "the deep cuts are still some of the most rewarding [[experimental hip-hop]] around."<ref name="mic">{{cite web |last1=Barnes |first1=Tom |title=5 Years Ago, Outkast Made an Album So Good It Completely Rewrote the Rules of Hip-Hop |url=https://www.mic.com/articles/127664/outkast-stankonia-15-year-anniversary |website=[[Mic.com|Mic]] |date=October 30, 2015 |access-date=January 25, 2022}}</ref>
With ''Stankonia'', OutKast became the first hip hop act to openly acknowledge [[rave culture]] as an influence.<ref name="Reynolds333">Reynolds, 2007. p. 333</ref> During the late 1990s, rappers tended to embrace slow, laid-back beats in their productions. On several tracks on ''Stankonia'', the group employed faster, more chaotic tempos to reflect rave culture and the introduction of new drugs such as ecstasy into the hip hop scene.<ref name="Reynolds333"/> Boston-based DJ [[Armand Van Helden]] recalls, "In the nineties, the bpms in hip-hop got slower and the clubs were moody ... it just kind of dragged. I really missed that kind of hands-in-the-air shit."<ref name="Reynolds333"/> A remix of "B.O.B" created by [[Rage Against the Machine]]'s [[Zack de la Rocha]] received airplay on alternative radio stations, expanding the group's fanbase beyond hip hop and urban listeners.<ref name="Pride">{{cite magazine |url=http://www.ew.com/ew/article/0,,278443,00.html |title=The Pride of Funkenstein |last=Brunner |first=Rob |date=November 10, 2000 |access-date=July 12, 2012 |magazine=Entertainment Weekly |archive-date=February 20, 2009 |archive-url=https://web.archive.org/web/20090220183120/http://www.ew.com/ew/article/0,,278443,00.html |url-status=dead}}</ref> Despite containing anti-war sentiments, "B.O.B" became popular amongst American troops deployed in Afghanistan.<ref name="Westhoff112" /> While working on her acclaimed album ''[[The ArchAndroid]]'' (2010), American [[R&B]] singer [[Janelle Monáe]] cited ''Stankonia'''s experimental nature as an influence.<ref name="Lewis">{{cite web |url=http://www.bluesandsoul.com/feature/554/janelle_monae_funky_sensation/ |title=Janelle Monáe: Funky Sensation |last=Lewis |first=Pete |work=[[Blues & Soul]] |access-date=July 10, 2012}}</ref> Rapper [[Pill (rapper)|Pill]] also acknowledged ''Stankonia'', and particularly the production of Organized Noize, as an inspiration: "The sounds, the instrumentation of the samples, the different horns—everything about the tracks were great to me."<ref name="Pillcomplex">{{cite web |url=http://www.complex.com/music/2010/05/pill-on-the-influence-of-organized-noize |title=Pill On The Influence Of Organized Noize |work=[[Complex (magazine)|Complex]] |date=May 12, 2010 |access-date=July 10, 2012}}</ref>
==Track listing==
All tracks are produced by [[Earthtone III]] (Outkast and [[Mr. DJ]]), except where noted.
{{Track listing
| extra_column = Producer(s)
| title1 = Intro
| writer1 = {{hlist|[[Andre Benjamin]]|[[Antwan Patton]]|[[David Sheats]]}}
| extra1 =
| length1 = 1:09
| title2 = Gasoline Dreams
| note2 = featuring [[Khujo]]
| writer2 = {{hlist|Benjamin|Patton|Sheats|[[Khujo|Willie Knighton]]}}
| extra2 =
| length2 = 3:34
| title3 = I'm Cool
| note3 = interlude
| length3 = 0:42
| title4 = [[So Fresh, So Clean]]
| writer4 = {{hlist|[[Organized Noize]]|Benjamin|Patton}}
| extra4 = Organized Noize
| length4 = 4:00
| title5 = [[Ms. Jackson]]
| writer5 = {{hlist|Benjamin|Patton|Sheats}}
| extra5 =
| length5 = 4:30
| title6 = Snappin' & Trappin{{'-}}
| note6 = featuring [[Killer Mike]] and J-Sweet
| writer6 = {{hlist|Benjamin|Patton|Sheats|[[Michael Render]]|John E.E. Smith|[[BlackOwned C-Bone|Cory Andrews]]}}
| extra6 =
| length6 = 4:19
| title7 = D.F.
| note7 = interlude
| length7 = 0:27
| title8 = Spaghetti Junction
| writer8 = {{hlist|Organized Noize|Benjamin|Patton}}
| extra8 = Organized Noize
| length8 = 3:57
| title9 = Kim & Cookie
| note9 = interlude
| length9 = 1:12
| title10 = I'll Call Before I Come
| note10 = featuring [[Gangsta Boo]] and Eco
| writer10 = {{hlist|Benjamin|Patton|Sheats|[[Gangsta Boo|Lola Mitchell]]|Rashida Roberts}}
| extra10 =
| length10 = 4:18
| title11 = [[B.O.B (song)|B.O.B]]
| writer11 = {{hlist|Benjamin|Patton|Sheats}}
| extra11 =
| length11 = 5:04
| title12 = Xplosion
| note12 = featuring [[B-Real]]
| writer12 = {{hlist|Benjamin|Patton|Sheats|[[Louis Freese]]|[[Witchdoctor (rapper)|Erin Johnson]]}}
| extra12 =
| length12 = 4:08
| title13 = Good Hair
| note13 = interlude
| length13 = 0:14
| title14 = We Luv Deez Hoez
| note14 = featuring Backbone and [[Big Gipp]]
| extra14 = Organized Noize
| writer14 = {{hlist|Organized Noize|Benjamin|Patton|Jamahr Williams|[[Cameron Gipp]]|Bolivar Troncoso}}
| length14 = 4:10
| title15 = Humble Mumble
| note15 = featuring [[Erykah Badu]]
| writer15 = {{hlist|Benjamin|Patton|Sheats|[[Erica Wright]]}}
| extra15 =
| length15 = 4:50
| title16 = Drinkin' Again
| note16 = interlude
| length16 = 0:24
| title17 = ?
| writer17 = {{hlist|Benjamin|Patton|Sheats}}
| extra17 =
| length17 = 1:28
| title18 = Red Velvet
| writer18 = {{hlist|Benjamin|Patton|Sheats}}
| extra18 =
| length18 = 3:52
| title19 = Cruisin' in the ATL
| note19 = interlude
| length19 = 0:19
| title20 = Gangsta Shit
| note20 = featuring Slimm Calhoun, [[C-Bone]] and [[T-Mo]]
| writer20 = {{hlist|Carlton Mahone|Benjamin|Patton|Sheats|[[T-Mo|Robert Barnett]]|Brian Loving|Andrews}}
| extra20 = {{hlist|Carl Mo|Earthtone III{{ref|a|[a]}}}}
| length20 = 4:41
| title21 = Toilet Tisha
| writer21 = {{hlist|Benjamin|Patton|Sheats}}
| extra21 =
| length21 = 4:24
| title22 = Slum Beautiful
| note22 = featuring [[CeeLo Green|Cee-Lo]]
| writer22 = {{hlist|Benjamin|Patton|Sheats|[[CeeLo Green|Thomas Burton]]}}
| extra22 =
| length22 = 4:07
| title23 = Pre-Nump
| note23 = interlude
| length23 = 0:27
| title24 = Stankonia (Stanklove)
| note24 = featuring [[Big Rube]] and [[Sleepy Brown]]
| writer24 = {{hlist|Benjamin|Patton|Sheats|[[Sleepy Brown|Patrick Brown]]|[[Big Rube|Ruben Bailey]]}}
| extra24 =
| length24 = 6:51
| total_length = 73:07
}}
'''Notes'''
* {{sup|{{note|a|[a]}}}} signifies a co-producer.
* "So Fresh, So Clean" contains a sample of "Before the Night is Over" by [[Joe Simon (musician)|Joe Simon]].
* "Ms. Jackson" contains a sample of "Strawberry Letter #23" by [[The Brothers Johnson]].
* "We Luv Deez Hoez" contains a sample of "Worldwide" by [[Allen Toussaint]].
{{Track listing
| headline = 2020 deluxe edition
| title25 = Ms. Jackson
| note25 = Mr. Drunk remix
| length25 = 4:45
| title26 = So Fresh, So Clean
| note26 = Stankonia remix) (featuring [[Snoop Dogg]] and Sleepy Brown
| writer26 = {{hlist|Benjamin|Patton|Sheats|Brown|[[Calvin Broadus]]}}
| length26 = 4:37
| title27 = B.O.B. (Bombs Over Baghdad)
| note27 = [[Zack de la Rocha]] remix
| length27 = 4:36
| title28 = Ms. Jackson
| note28 = [[a cappella]]
| length28 = 3:54
| title29 = So Fresh, So Clean
| note29 = a cappella
| length29 = 3:53
| title30 = B.O.B. (Bombs Over Baghdad)
| note30 = a cappella
| length30 = 2:58
| total_length = 97:50
}}
{{Track listing
| headline = 2025 deluxe edition
| total_length = 112:18
| title25 = Speed Ballin{{'-}}
| writer25 = {{hlist|Benjamin|Patton|Sheats}}
| length25 = 5:04
| title26 = Sole Sunday
| note26 = Dirty Mix) (featuring [[Goodie Mob]]
| writer26 = {{hlist|Benjamin|Patton|Sheats|Gipp|Knighton}}
| length26 = 4:39
| title27 = So Fresh, So Clean
| note27 = Stankonia remix) (featuring Snoop Dogg and Sleepy Brown
| length27 = 4:37
| title28 = B.O.B. (Bombs Over Baghdad)
| note28 = Zack de la Rocha remix
| length28 = 4:36
| title29 = B.O.B. (Bombs Over Baghdad)
| note29 = Cutmaster Swiff remix
| length29 = 6:08
| title30 = B.O.B. (Bombs Over Baghdad)
| note30 = Beat Bullies remix
| length30 = 4:21
| title31 = So Fresh, So Clean
| note31 = instrumental
| length31 = 4:39
| title32 = B.O.B. (Bombs Over Baghdad)
| note32 = instrumental
| length32 = 5:07
}}
==Personnel==
{{col-begin}}
{{col-2}}
'''OutKast'''
* [[Big Boi]] (Antwan Patton) – vocals, [[Record producer|production]]
* [[André 3000]] (Andre Benjamin) – vocals, [[synthesizer]]s, guitar, production
* [[Mr. DJ]] (David Sheats) – production
'''Guest performers'''
* [[Sleepy Brown]]
* [[Khujo Goodie]]
* [[Killer Mike]]
* J-Sweet
* [[Gangsta Boo]]
* Eco
* [[B-Real]]
* [[Erykah Badu]]
* Backbone
* [[Big Gipp]]
* Slimm Calhoun
* C-Bone
* T-Mo Goodie
* [[Cee-Lo Green]]
* Big Rube
* [[Joi (singer)|Joi]]
{{col-2}}
'''Musicians'''
* Donnie Mathis – guitar
* David "Whild" Brown – guitar
* Jason Freeman – [[French horn|horns]]
* Jerry Freeman – horns
* Sleepy Brown – piano, synthesised bass
* Marvin "Chanz" Parkman – piano, keyboards
* Earthtone III – keyboards
* Organized Noize – keyboards
* Preston Crump – bass guitar, synthesized bass
* Aaron Mills – bass guitar
* Robert Grister – bass guitar
* Dookie Blossumgame – bass guitar
* Victor Alexander – drums
* Rosalin Heard – backing vocals
* Paul Douglas-Feddon – backing vocals
* [[Myrna "Screechy Peach" Crenshaw]] – backing vocals
* Cutmaster Swiff – cuts
'''Design'''
* [[Michael Lavine]] – photography
{{col-end}}
==Charts==
{{col-begin}}
{{col-2}}
===Weekly charts===
{| class="wikitable sortable plainrowheaders" style="text-align:center;"
|-
!Chart (2000–2001)
!Peak<br />position
|-
{{album chart|Australia|33|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
! scope="row"| Australian Urban Albums ([[ARIA Charts|ARIA]])<ref>{{cite journal |url=http://pandora.nla.gov.au/pan/23790/20020221-0000/www.aria.com.au/issue593.pdf |archive-url=https://webarchive.nla.gov.au/awa/20080222222432/http://pandora.nla.gov.au/pan/23790/20020221-0000/www.aria.com.au/issue593.pdf |url-status=dead |archive-date=February 22, 2008 |title=ARIA Urban Chart – Week Commencing 9th July 2001 |journal=[[Australian Recording Industry Association]] |issue=593 |page=14 |date=July 9, 2001 |access-date=April 16, 2023 |via=[[Pandora Archive]]}} {{cbignore|bot=medic}}{{cbignore}}</ref>
|5
|-
{{album chart|Austria|16|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|Flanders|25|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|BillboardCanada|4|artist=Outkast|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|Canada2|14|date=20010211|rowheader=true|access-date=May 4, 2025}}
|-
! scope="row"|Canadian R&B Albums ([[Nielsen SoundScan]])<ref>{{cite web |url=http://canoe.com/JamMusicCharts/RANDB.html |title=R&B : Top 50 |website=[[Jam!]] |date=August 19, 2000 |access-date=January 27, 2023 |archive-url=https://web.archive.org/web/20001119201200/http://canoe.com:80/JamMusicCharts/RANDB.html |archive-date=November 19, 2000}}</ref>
|style="text-align:center;"|1
|-
{{album chart|Denmark|17|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|Netherlands|20|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|Finland|8|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|France|26|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|Germany|6|id=3555|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|Ireland2|29|artist=Outkast|album=Stankonia|rowheader=true|access-date=May 4, 2025}}
|-
{{album chart|New Zealand|17|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|Norway|8|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|Scotland|14|date=20010211|rowheader=true|access-date=May 4, 2025}}
|-
{{album chart|Sweden|15|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|Switzerland|14|artist=Outkast|album=Stankonia|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|UK|10|artist=OutKast|rowheader=true|access-date=September 17, 2014}}
|-
{{album chart|UKR&B|1|date=20010211|rowheader=true|access-date=May 4, 2025}}
|-
{{album chart|US|10|artist=OutKast|rowheader=true|access-date=September 17, 2014}}
|-
{{album chart|USR&B|1|date=20010211|rowheader=true|access-date=May 4, 2025}}
|-
{{album chart|Billboard200|2|artist=Outkast|rowheader=true|access-date=August 17, 2020}}
|-
{{album chart|BillboardRandBHipHop|2|artist=Outkast|rowheader=true|access-date=August 17, 2020}}
|}
{{col-2}}
=== Year-end charts ===
{| class="wikitable sortable plainrowheaders" style="text-align:center;"
|-
!Chart (2000)
!Position
|-
! scope="row"|Canadian Albums (Nielsen SoundScan)<ref>{{cite web |archiveurl=https://web.archive.org/web/20040906184459/http://www.jamshowbiz.com/JamMusicCharts/2000_2.html |archivedate=September 6, 2004 |url=http://www.jamshowbiz.com/JamMusicCharts/2000_2.html |title=Canada's Top 200 Albums of 2000 |website=[[Jam!]] |accessdate=March 29, 2022}}</ref>
| 101
|-
!scope="row"|US ''Billboard'' 200<ref>{{cite magazine |url=https://www.billboard.com/charts/year-end/2000/top-billboard-200-albums |title=Top Billboard 200 Albums – Year-End 2000 |magazine=Billboard |access-date=August 17, 2020}}</ref>
|104
|-
!scope="row"|US Top R&B/Hip-Hop Albums (''Billboard'')<ref>{{cite magazine |url=https://www.billboard.com/charts/year-end/2000/top-r-and-b-hip-hop-albums |title=Top R&B/Hip-Hop Albums – Year-End 2000 |magazine=Billboard |access-date=August 17, 2020}}</ref>
|51
|}
{| class="wikitable sortable plainrowheaders" style="text-align:center;"
|-
!Chart (2001)
!Position
|-
!scope="row"|Canadian Albums (Nielsen SoundScan)<ref>{{cite web |archiveurl=https://web.archive.org/web/20031212202406/http://jamshowbiz.com/JamMusicCharts/200-1_2001.html |archivedate=December 12, 2003 |url=http://jamshowbiz.com/JamMusicCharts/200-1_2001.html |title=Canada's Top 200 Albums of 2001 (based on sales) |website=[[Jam!]] |accessdate=March 26, 2022}}</ref>
| 80
|-
! scope="row"|Canadian R&B Albums (Nielsen SoundScan)<ref>{{cite web |archive-url=https://web.archive.org/web/20021122000500/http://www.jamshowbiz.com/JamMusicCharts/2001_r&b.html |date=January 8, 2002 |archive-date=November 22, 2002 |url=http://www.jamshowbiz.com/JamMusicCharts/2001_r&b.html |title=Canada's Top 200 R&B; albums of 2001 |website=[[Jam!]] |accessdate=January 22, 2023}}</ref>
|19
|-
!scope="row"|Canadian Rap Albums (Nielsen SoundScan)<ref>{{cite web |archive-url=https://web.archive.org/web/20021122000815/http://www.jamshowbiz.com/JamMusicCharts/2001_rap.html |date=January 8, 2002 |archive-date=November 22, 2002 |url=http://www.jamshowbiz.com/JamMusicCharts/2001_rap.html |title=Top 100 rap albums of 2001 in Canada |website=[[Jam!]] |accessdate=January 26, 2023}}</ref>
|9
|-
! scope="row"| European Albums (''Music & Media'')<ref>{{cite magazine |url=https://www.americanradiohistory.com/UK/Music-and-Media/00s/2001/MM-2001-12-22.pdf |title=Year in Review – European Top 100 Albums 2001 |magazine=Music & Media |volume=19 |issue=52 |date=December 22, 2001 |page=15 |oclc=29800226 |access-date=March 4, 2020 |via=American Radio History}}</ref>
|100
|-
!scope="row"|German Albums (Offizielle Top 100)<ref>{{cite web |url=https://www.offiziellecharts.de/charts/album-jahr/for-date-2001 |title=Top 100 Album-Jahrescharts |language=de |publisher=[[GfK Entertainment]] |access-date=August 17, 2020}}</ref>
|80
|-
! scope="row"|New Zealand Albums (RMNZ)<ref>{{cite web |url=https://aotearoamusiccharts.co.nz/archive/annual-albums/2001-12-31 |title=Top Selling Albums of 2001 |website=The Official NZ Music Charts |access-date=August 29, 2018}}</ref>
| 44
|-
!scope="row"|UK Albums (OCC)<ref>{{cite web |url=https://www.officialcharts.com/charts/end-of-year-artist-albums-chart/20010107/37502/ |title=End of Year Album Chart Top 100 – 2001 |publisher=Official Charts Company |access-date=August 17, 2020}}</ref>
|100
|-
!scope="row"|US Albums (RIAA)<ref>{{cite web |url=https://www.riaa.com/charts/end-of-year-artist-albums-chart/20010107/37502/ |title=End of Year Album Chart Top 100 – 2001 |publisher=RIAA Charts |access-date=August 17, 2020}}</ref>
|100
|-
!scope="row"|US ''Billboard'' 200<ref>{{cite magazine |url=https://www.billboard.com/charts/year-end/2001/top-billboard-200-albums |title=Top Billboard 200 Albums – Year-End 2001 |magazine=Billboard |access-date=August 17, 2020}}</ref>
|16
|-
!scope="row"|US Top R&B/Hip-Hop Albums (''Billboard'')<ref>{{cite magazine |url=https://www.billboard.com/charts/year-end/2001/top-r-and-b-hip-hop-albums |title=Top R&B/Hip-Hop Albums – Year-End 2001 |magazine=Billboard |access-date=August 17, 2020}}</ref>
|6
|}
{| class="wikitable sortable plainrowheaders" style="text-align:center;"
|-
!Chart (2002)
!Position
|-
! scope="row"|Canadian R&B Albums (Nielsen SoundScan)<ref>{{cite web |archiveurl=https://web.archive.org/web/20031106073523/http://www.jamshowbiz.com/JamMusicCharts/2002_r&b2.html |archivedate=November 6, 2003 |url=http://www.jamshowbiz.com/JamMusicCharts/2002_r&b2.html |title=Canada's Top 200 R&B; albums of 2002 |website=[[Jam!]] |accessdate=March 28, 2022}}</ref>
| 185
|-
! scope="row"|Canadian Rap Albums (Nielsen SoundScan)<ref>{{cite web |archiveurl=https://web.archive.org/web/20031012032336/http://www.jamshowbiz.com/JamMusicCharts/2002_rap.html |archivedate=October 12, 2003 |url=http://www.jamshowbiz.com/JamMusicCharts/2002_rap.html |title=Top 100 rap albums of 2002 in Canada |website=[[Jam!]] |accessdate=March 28, 2022}}</ref>
| 91
|}
===Decade-end charts===
{| class="wikitable sortable plainrowheaders" style="text-align:center;"
|-
! scope="col"| Chart (2000–2009)
! scope="col"| Position
|-
!scope="row"| US ''Billboard'' 200<ref>{{cite magazine |url=https://worldradiohistory.com/Archive-All-Music/Billboard/00s/2009/BB-2009-12-19.pdf |title=The Decade in Music - Charts - Top Billboard 200 Albums |via=World Radio History |magazine=Billboard |page=163 |access-date=June 27, 2021}} ''Digit page 167 on the PDF archive.''</ref>
|75
|}
{{col-end}}
==Certifications==
{{Certification Table Top}}
{{Certification Table Entry|region=Australia|type=album|title=Stankonia|artist=Outkast|award=Gold|relyear=2000|certyear=2020|access-date=April 29, 2021}}
{{Certification Table Entry|region=Canada|type=album|title=Stankonia|artist=Outkast|award=Platinum|number=3|relyear=2000|certyear=2025|access-date=July 9, 2023}}
{{Certification Table Entry|region=New Zealand|type=album|title=Stankonia|artist=Outkast|award=Gold|id=2001-03-16|source=newchart|access-date=November 20, 2024|relyear=2000}}
{{Certification Table Entry|region=Norway|type=album|artist=Outkast|title=Stankonia|award=Gold|relyear=2000|certyear=2004|access-date=October 4, 2021}}
{{Certification Table Entry|region=United Kingdom|type=album|artist=Outkast|title=Stankonia|award=Platinum|id=11337-1847-2|relyear=2000|certyear=2025|access-date=December 19, 2025}}
{{Certification Table Entry|region=United States|type=album|title=Stankonia|artist=Outkast|award=Platinum|number=5|relyear=2000|certyear=2021|accessdate=November 22, 2021}}
{{Certification Table Bottom|streaming=true}}
== See also ==
* [[Progressive rap]]
==References==
{{Reflist}}
===Bibliography===
* {{cite book |editor-last=Boyd |editor-first=Todd |year=2003 |title=The New H.N.I.C.: The Death of Civil Rights and the Reign of Hip Hop |publisher=NYU Press |isbn=978-0-8147-9895-9}}
* {{cite book |editor-last=Brackett |editor-first=Nathan |year=2004 |title=The New Rolling Stone Album Guide: Completely Revised and Updated 4th Edition |publisher=Fireside Books |isbn=0-7432-0169-8 |url-access=registration |url=https://archive.org/details/newrollingstonea00brac}}
* {{cite book |editor-last=Crazy Horse |editor-first=Kandia |year=2004 |title=Rip It Up: The Black Experience in Rock 'n Roll |publisher=Palgrave Macmillan |isbn=978-1-4039-6243-0}}
* {{cite book |editor-last=Hess |editor-first=Mickey |year=2007 |title=Icons of Hip Hop: An Encyclopedia of the Movement, Music, and Culture |publisher=[[ABC-CLIO]] |isbn=978-0-313-33903-5 |url-access=registration |url=https://archive.org/details/iconsofhiphopenc0000unse}}
* {{cite book |editor-last=Moon |editor-first=Tom |year=2008 |title=1,000 Recordings to Hear Before You Die: A Listener's Life List |publisher=Workman Publishing Company, Inc.}}
* {{cite book |editor-last=Reynold |editor-first=Simon |year=2007 |title=Bring the Noise: 20 Years of Writing About Hip Rock & Hip-Hop |publisher=Faber & Faber}}
* {{cite book |editor-last=Wang |editor-first=Oliver |title=Classic Material: The Hip-Hop Album Guide |publisher=[[ECW Press]] |date=May 1, 2003 |isbn=1-55022-561-8}}
* {{cite book |last=Westhoff |first=Ben |date=May 1, 2011 |title=Dirty South: OutKast, Lil Wayne, Soulja Boy, and the Southern Rappers Who Reinvented Hip-Hop |publisher=[[Chicago Review Press]] |isbn=978-1-56976-606-4}}
==External links==
* {{discogs master|26124}}
* {{Metacritic album}}
* {{Musicbrainz release group|00d2cd53-21c9-3738-b683-56847b7b0040}}
* [http://www.stylusmagazine.com/articles/playing_god/outkast-stankonia.htm Playing God: Stankonia] {{Webarchive|url=https://web.archive.org/web/20080917020537/http://www.stylusmagazine.com/articles/playing_god/outkast-stankonia.htm |date=September 17, 2008 }} at [[Stylus Magazine]]
* [http://mikerush.prosite.com/37215/gallery Graphic Designer, J. Michael Rush]
{{OutKast}}
{{Grammy Award for Best Rap Album}}
{{Authority control}}
{{Good article}}
[[Category:2000 albums]]
[[Category:Outkast albums]]
[[Category:LaFace Records albums]]
[[Category:Albums produced by André 3000]]
[[Category:Albums produced by Earthtone III]]
[[Category:Albums produced by Organized Noize]]
[[Category:Grammy Award for Best Rap Album]]
[[Category:Progressive rap albums]]
[[Category:Funk albums by American artists]]
aozt9jh9xbdmszlv76yvb26lm0cb8j0
User:আফতাবুজ্জামান/common.js
2
74790
739219
583641
2026-04-23T22:32:24Z
আফতাবুজ্জামান
23574
739219
javascript
text/javascript
mw.loader.load('//test.wikipedia.org/w/index.php?title=User:আফতাবুজ্জামান/BanglaDate2.js&action=raw&ctype=text/javascript');
mw.loader.load( "https://en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/lintHint/r.js&action=raw&bcache=1&maxage=86400&ctype=text/javascript" );
if ( mw.config.get("wgArticleId") === 0 ) {
$(function() {
$( "#wpSummary" ).val( "নতুন" );
});
}
mw.loader.load('//bn.wikipedia.org/w/index.php?title=ব্যবহারকারী:Md._Muqtadir_Fuad/script-redlinks.js&action=raw&ctype=text/javascript');
mw.loader.load('//bn.wikipedia.org/w/index.php?title=ব্যবহারকারী:আফতাবুজ্জামান/সারিবদ্ধকারী.js&action=raw&ctype=text/javascript');
a4jutzw6vmr8i2utmxrub161rbla6bj
Wikipedia:Sandbox
4
107092
739227
739042
2026-04-24T02:41:55Z
BawugBot
73690
bawug-bot-starter hello edit (workshop demo)
739227
wikitext
text/x-wiki
<noinclude>{{Sandbox}}</noinclude>
== Please start your testing below this line ==
Hello from bawug-bot-starter at 2026-04-24T02:41:46+00:00. [[User:BawugBot|BawugBot]] ([[User talk:BawugBot|talk]]) 02:41, 24 April 2026 (UTC)
7954q2ik9soip8o6k6ogpsnfb691gtd
Gary Keller (saxophonist)
0
113318
739228
721986
2026-04-24T06:55:52Z
~2026-23062-17
73557
739228
wikitext
text/x-wiki
{{Other people|Gary Keller}}
'''Gary Keller''' (born October 7, 1953)<ref name="allaboutjazz1">{{cite web|author=All About Jazz |url=http://musicians.allaboutjazz.com/musician.php?id=17380#.Ub3B2O-cVPw |title=Gary Keller @ All About Jazz |publisher=Musicians.allaboutjazz.com |date= |accessdate=2013-06-16}}</ref> is a [[jazz]] and [[classical music|classical]] [[saxophonist]], recording artist, a lecturer at the [[Frost School of Music]] at the [[University of Miami]], and a [[Conn-Selmer Artist]].<ref>{{cite web |url=http://centerstage.conn-selmer.com/artists/index.php?letter=K |title=Welcome to Conn-Selmer Centerstage |publisher=Centerstage.conn-selmer.com |date= |accessdate=2013-06-16 |archive-date=2012-07-23 |archive-url=https://web.archive.org/web/20120723071925/http://centerstage.conn-selmer.com/artists/index.php?letter=K |url-status=dead }}</ref> He has played with [[Woody Herman]], [[Frank Sinatra]], and [[Jaco Pastorius]], among many over a career spanning more than two decades. He appears on numerous recordings. He has performed in the pit of Broadway orchestras and for television shows.<ref name="miami1">{{cite web|url=http://www.miami.edu/frost/index.php/frost/frost_profiles/jazz-keller_gary_w_bio/ |title=Gary W. Keller | Profiles | Frost | University of Miami |publisher=Miami.edu |date= |accessdate=2013-06-16}}</ref>
[https://duckduckgo.com]
==Biography==
{{Expand section|date=June 2013}}
Gary Keller holds a Bachelor of Music (B.M.) degree from the [[State University of New York at Fredonia]] He received his Master of Music (M.M.). from the [[Frost School of Music]] at the University of Miami. Keller has studied under [[Joe Allard]], [[David Liebman]], [[Pat LaBarbera]], and [[Bob Mover]] among others. He has been a professor at Frost since 1982.<ref name="allaboutjazz1"/>
==Career==
Keller is the founder of the [[Miami Saxophone Quartet]].<ref>[http://www.miamisaxquartet.com/ Miami Saxophone Quartet] - About Us</ref> He is a member of the [[South Florida Jazz Orchestra]].<ref>[http://www.southfloridajazzorchestra.com/HTML%20Files/BIO_POPS/10_Gary_Keller.html Gary Keller] {{Webarchive|url=https://web.archive.org/web/20160303235332/http://www.southfloridajazzorchestra.com/HTML%20Files/BIO_POPS/10_Gary_Keller.html |date=2016-03-03 }} - South Florida Jazz Orchestra Website</ref> He has performed at clubs and jazz festivals, and lectured about jazz and music performance at colleges and universities in the United States, Japan, and Europe.<ref name="miami1"/> numerous national and international recordings, television shows, Broadway pit orchestras.
Keller made his debut solo recording in 1999, [[Blues For An Old New Age (album)|Blues For An Old New Age]]. Saxophone Journal has called Keller an "admired and respected as a virtuoso performer and world class educator.” <ref>{{cite web |url=http://www.dornpub.com/saxophonejournal/SaxJJulyAug2002.html |title=Saxophone Journal Just Out |publisher=Dornpub.com |date= |accessdate=2013-06-16 |archive-date=2011-11-15 |archive-url=https://web.archive.org/web/20111115202750/http://www.dornpub.com/saxophonejournal/SaxJJulyAug2002.html |url-status=dead }}</ref>
“Keller’s tunes are an exemplary bunch…A thinkers delight…extremely well done,” according to [[The Penguin Guide to Jazz on CD]]. He appeared on the July/August 2002 cover of Saxophone Journal, a trade publication.<ref>[http://www.dornpub.com/saxophonejournal/SaxJJulyAug2002.html Saxophone Journal] {{Webarchive|url=https://web.archive.org/web/20200222221600/http://www.dornpub.com/saxophonejournal/SaxJJulyAug2002.html |date=2020-02-22 }} July–August 2002</ref>
He lectures and teaches at schools around the world, and has been an Artist in Residence at the [[Johannes Gutenberg-Universität]], [[Mainz]] and has taught and performed at the [[Thomas Jefferson Institute]], the [[University of Brasilia]], [[Brasilia]], [[Brazil]], and the IASJ Summer Workshop at the Souza Lima Conservatory in Sao Paulo, Brazil, among others.
===Performed with===
Keller has appeared with numerous jazz artists including:<ref name="allaboutjazz1"/><ref name="miami1"/><ref>{{Cite web |url=http://www.garykeller.net/html/upcomingshows2.cfm |title=GaryKeller.net |access-date=2013-06-16 |archive-url=https://web.archive.org/web/20121231133429/http://www.garykeller.net/html/upcomingshows2.cfm |archive-date=2012-12-31 |url-status=dead }}</ref>
* [[Manny Album]]
* [[David Baker (composer)|David Baker]]
* [[Tony Bennett]]
* [[Natalie Cole]]
* [[Vic Damone]]
* [[Michael Feinstein]]
* [[Clare Fischer]]
* [[Billy Hart]]
* [[Woody Herman]]
* [[Dave Liebman]]
* [[Johnny Mathis]]
* [[Chico O'Farrill]]
* [[Jaco Pastorius]]
* [[Jim McNeely]]
* [[Adam Nussbaum]]
* [[Lou Rawls]]
* [[Troy Roberts (musician)|Troy Roberts]]
* [[Lupa Santiago]]
* [[Maria Schneider (musician)|Maria Schneider]]
* [[Frank Sinatra]]
* [[Dr. Lonnie Smith]]
* [[Ira Sullivan]]
* [[Mel Torme]]
* [[Rosanna Vitro]]
* [[Kenny Werner]]
* [[Kenny Wheeler]]
===Bands and combos===
Keller has appeared with numerous big bands and combos:<ref name="allaboutjazz1"/><ref name="miami1"/>
* [[American Jazz Philharmonic]]
* [[Alan Baylock Big Band]]
* [[Drive By Big Band]]
* [[Woody Herman Thundering Herd]]
* [[The Jaco Pastorius Big Band]]
* [[Miami Saxophone Quartet]]
* [[Rosanna Vitro Quartet]]
* [[Word of Mouth Revisited Big Band]]
* [[Stephen Guerra Big Band]]
* [[University of Miami Concert Jazz Band]]
===Classical performances===
Keller has performed/recorded classical works with:<ref name="miami1"/>
* [[Chamber Music Palm Beach]]
* [[Festival Orchestra of Santo Domingo]]
* [[Florida Philharmonic]]
* [[Frost Symphony Orchestra]]
* [[New World Symphony]]
* [[Naples Philharmonic]]
* [[St. Petersburg (Russia) Philharmonic]]
===Clubs and venues===
*[[Blue Note Jazz Club]], Tokyo, Japan
*[[Hard Rock Live]], Hollywood, Florida
===Jazz festivals===
* [[Montreux Jazz Festival Japan]], 2011
* [[Rochester Jazz Festival]], 2010 - with the Miami Saxophone Quartet
* [[Scranton Jazz Festival]], 2012
===As author===
Keller is the author of [[The Jazz Chord/Scale Handbook]] (Advance Music), an advanced-level music book on jazz chord progressions and scales.<ref>{{cite web|url=http://browse.feedreader.com/c/Jazz_Books_Reviews/337808211 |title=The Jazz Chord / Scale Handbook by Gary Keller from jazzbooksreviews.com |publisher=Browse.feedreader.com |date=2013-03-02 |accessdate=2013-06-16}}</ref>
==Discography==
* ''Fourtified'' - [[Miami Saxophone Quartet]] (2008)
* [[Midnight Rumba (jazz album)|Midnight Rumba]] - [[Miami Saxophone Quartet]] with special guests [[Arturo Sandoval]] and [[Jon Secada]] (2005)
* [[Miami Saxophone Quartet Live (jazz album)|Miami Saxophone Quartet Live]] - [[Miami Saxophone Quartet]] (2003)
* [[Take Four Giant Steps (jazz album)|Take Four Giant Steps]] - [[Miami Saxophone Quartet]] (2002)
* ''Blues For An Old New Age'' (1999) - [[Double-Time Records]]
'''With [[Gerry Mulligan]]'''
*''[[Walk on the Water (album)|Walk on the Water]]'' (DRG, 1980)
==References==
{{Reflist}}
{{authority control}}
{{DEFAULTSORT:Keller, Gary}}
[[Category:American jazz saxophonists]]
[[Category:American male saxophonists]]
[[Category:1953 births]]
[[Category:Living people]]
[[Category:21st-century saxophonists]]
[[Category:21st-century American male musicians]]
[[Category:Male jazz musicians]]
[[Category:Double-Time Records artists]]<noinclude>
<small>This page was moved from [[:en:Gary Keller (saxophonist)]]. Its edit history can be viewed at [[Gary Keller (saxophonist)/edithistory]]</small></noinclude>
3ss0vmufanu6aufupmsx763kj2j50li
User:SongVĩ.Bot II
2
124239
739197
739102
2026-04-23T17:00:15Z
SongVĩ.Bot II
52414
[[User:SongVĩ.Bot II|Task 0]]: Đã 1578 ngày...
739197
wikitext
text/x-wiki
Cập nhật lần cuối: 24-04-2026
Đã 1578 ngày...
sy6ynuefkxggd6j8dkb9qcprqqibdrv
739207
739197
2026-04-23T20:05:59Z
SongVĩ.Bot II
52414
[[User:SongVĩ.Bot II|Task 0]]: Đã 1579 ngày...
739207
wikitext
text/x-wiki
Cập nhật lần cuối: 24-04-2026
Đã 1579 ngày...
9nyo5o4d2rzlhnrd5cp4fnytatifgvf
Wikipedia:Village pump/topic list
4
146208
739182
739069
2026-04-23T15:22:09Z
Cewbot
33876
[[User:Cewbot/log/20170915/configuration|Generate topic list: 6 topics]]; new reply: [[Wikipedia:Village pump#Changes to electionadmin userright|Changes to electionadmin userright]]
739182
wikitext
text/x-wiki
<!-- This page is auto-generated by bot. Please contact the bot operator to improve the tool. -->
{| class="wikitable sortable mw-collapsible" style="float:left;"
|-
! data-sort-type="number" style="font-weight: normal;" | <small>#</small> !! 💭 Title !! <span title="Count of comments">💬</span> !! <span title="Count of peoples in discussion">👥</span> !! 🙋 Last editor !! data-sort-type="isoDate" | <span title="Date/Time">🕒 <small>(UTC)</small></span>
|-
| style="text-align: right;" | 1
| [[Wikipedia:Village pump#Script|Script]]
| style="text-align: right;" | 8
| style="text-align: right;" | 5
| style="background-color: #bbb;" | [[User:LuniZunie|LuniZunie]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2025-11-09T16:47:00.000Z" | 2025-11-09 <span style="color: blue;">16:47</span>
|-
| style="text-align: right;" | 2
| [[Wikipedia:Village pump#Report_concerning_Tanbiruzzammn|Report concerning Tanbiruzzammn]]
| style="text-align: right;" | 2
| style="text-align: right;" | 2
| style="background-color: #bbb;" | [[User:Barras|Barras]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2025-12-09T21:45:00.000Z" | 2025-12-09 <span style="color: blue;">21:45</span>
|-
| style="text-align: right;" | 3
| [[Wikipedia:Village pump#Report_concerning_Bucheon|Report concerning Bucheon]]
| style="text-align: right;background-color: #fcc;" | 1
| style="text-align: right;background-color: #fcc;" | 1
| style="background-color: #bbb;" | [[User:PieWriter|PieWriter]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-02-19T10:25:00.000Z" | 2026-02-19 <span style="color: blue;">10:25</span>
|-
| style="text-align: right;" | 4
| [[Wikipedia:Village pump#Versions_and_dates|Versions and dates]]
| style="text-align: right;" | 2
| style="text-align: right;background-color: #fcc;" | 1
| style="background-color: #bbb;" | [[Special:Contributions/~2026-13668-13|<span style="color: #c20;">~2026-13668-13</span>]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-03-03T06:17:00.000Z" | 2026-03-03 <span style="color: blue;">06:17</span>
|-
| style="text-align: right;" | 5
| style="max-width: 24em" | <small>[[Wikipedia:Village pump#Upcoming_Wikimedia_Café_meetup_regarding_the_the_2026-2027_Wikimedia_Foundation_Annual_Plan|Upcoming Wikimedia Café meetup regarding the the 2026-2027 Wikimedia Foundation Annual Plan]]</small>
| style="text-align: right;background-color: #fcc;" | 1
| style="text-align: right;background-color: #fcc;" | 1
| style="background-color: #ddd;" | [[User:Pine|Pine]]
| style="background-color: #ddd;" data-sort-type="isoDate" data-sort-value="2026-03-30T03:46:00.000Z" | 2026-03-30 <span style="color: blue;">03:46</span>
|-
| style="text-align: right;" | 6
| [[Wikipedia:Village pump#Changes_to_electionadmin_userright|Changes to electionadmin userright]]
| style="text-align: right;" | 4
| style="text-align: right;" | 4
| style="background-color: #efe;" | [[User:Chaotic Enby|Chaotic Enby]]
| style="background-color: #efe;" data-sort-type="isoDate" data-sort-value="2026-04-23T15:22:00.000Z" | 2026-04-23 <span style="color: blue;">15:22</span>
|}
{| class="wikitable mw-collapsible mw-collapsed" style="float: left; margin-left: .5em;;{{#if:{{{no_time_legend|}}}|display:none;|}}"
! title="From the latest bot edit" | Legend
|-
| style="background-color: #efe;" |
* In the last hour
|-
| style="background-color: #eef;" |
* In the last day
|-
| |
* In the last week
|-
| style="background-color: #ddd;" |
* In the last month
|-
| style="background-color: #bbb;" |
* More than one month
|-
! Manual settings
|-
| style="max-width: 12em;" | <small>When exceptions occur,<br />please check [[User:Cewbot/log/20170915/configuration|the setting]] first.</small>
|-
|}
{{Clear}}
2jrs9hzaijl34hm715zo6hpvmsdlwfy
739215
739182
2026-04-23T21:22:23Z
Cewbot
33876
[[User:Cewbot/log/20170915/configuration|Generate topic list: 6 topics]]
739215
wikitext
text/x-wiki
<!-- This page is auto-generated by bot. Please contact the bot operator to improve the tool. -->
{| class="wikitable sortable mw-collapsible" style="float:left;"
|-
! data-sort-type="number" style="font-weight: normal;" | <small>#</small> !! 💭 Title !! <span title="Count of comments">💬</span> !! <span title="Count of peoples in discussion">👥</span> !! 🙋 Last editor !! data-sort-type="isoDate" | <span title="Date/Time">🕒 <small>(UTC)</small></span>
|-
| style="text-align: right;" | 1
| [[Wikipedia:Village pump#Script|Script]]
| style="text-align: right;" | 8
| style="text-align: right;" | 5
| style="background-color: #bbb;" | [[User:LuniZunie|LuniZunie]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2025-11-09T16:47:00.000Z" | 2025-11-09 <span style="color: blue;">16:47</span>
|-
| style="text-align: right;" | 2
| [[Wikipedia:Village pump#Report_concerning_Tanbiruzzammn|Report concerning Tanbiruzzammn]]
| style="text-align: right;" | 2
| style="text-align: right;" | 2
| style="background-color: #bbb;" | [[User:Barras|Barras]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2025-12-09T21:45:00.000Z" | 2025-12-09 <span style="color: blue;">21:45</span>
|-
| style="text-align: right;" | 3
| [[Wikipedia:Village pump#Report_concerning_Bucheon|Report concerning Bucheon]]
| style="text-align: right;background-color: #fcc;" | 1
| style="text-align: right;background-color: #fcc;" | 1
| style="background-color: #bbb;" | [[User:PieWriter|PieWriter]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-02-19T10:25:00.000Z" | 2026-02-19 <span style="color: blue;">10:25</span>
|-
| style="text-align: right;" | 4
| [[Wikipedia:Village pump#Versions_and_dates|Versions and dates]]
| style="text-align: right;" | 2
| style="text-align: right;background-color: #fcc;" | 1
| style="background-color: #bbb;" | [[Special:Contributions/~2026-13668-13|<span style="color: #c20;">~2026-13668-13</span>]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-03-03T06:17:00.000Z" | 2026-03-03 <span style="color: blue;">06:17</span>
|-
| style="text-align: right;" | 5
| style="max-width: 24em" | <small>[[Wikipedia:Village pump#Upcoming_Wikimedia_Café_meetup_regarding_the_the_2026-2027_Wikimedia_Foundation_Annual_Plan|Upcoming Wikimedia Café meetup regarding the the 2026-2027 Wikimedia Foundation Annual Plan]]</small>
| style="text-align: right;background-color: #fcc;" | 1
| style="text-align: right;background-color: #fcc;" | 1
| style="background-color: #ddd;" | [[User:Pine|Pine]]
| style="background-color: #ddd;" data-sort-type="isoDate" data-sort-value="2026-03-30T03:46:00.000Z" | 2026-03-30 <span style="color: blue;">03:46</span>
|-
| style="text-align: right;" | 6
| [[Wikipedia:Village pump#Changes_to_electionadmin_userright|Changes to electionadmin userright]]
| style="text-align: right;" | 4
| style="text-align: right;" | 4
| style="background-color: #eef;" | [[User:Chaotic Enby|Chaotic Enby]]
| style="background-color: #eef;" data-sort-type="isoDate" data-sort-value="2026-04-23T15:22:00.000Z" | 2026-04-23 <span style="color: blue;">15:22</span>
|}
{| class="wikitable mw-collapsible mw-collapsed" style="float: left; margin-left: .5em;;{{#if:{{{no_time_legend|}}}|display:none;|}}"
! title="From the latest bot edit" | Legend
|-
| style="background-color: #efe;" |
* In the last hour
|-
| style="background-color: #eef;" |
* In the last day
|-
| |
* In the last week
|-
| style="background-color: #ddd;" |
* In the last month
|-
| style="background-color: #bbb;" |
* More than one month
|-
! Manual settings
|-
| style="max-width: 12em;" | <small>When exceptions occur,<br />please check [[User:Cewbot/log/20170915/configuration|the setting]] first.</small>
|-
|}
{{Clear}}
7t2z2jz02x1jum2g916yomklmc3r907
User:Wooze
2
146986
739217
622920
2026-04-23T21:50:30Z
Wooze
54732
739217
wikitext
text/x-wiki
{{DISPLAYTITLE:<span style="position:absolute; top:-9999px;">User:</span><span style="font-family:Dancing Script, cursive; color:#006633" lang="en">Wooze</span>}}
{{PAGEBANNER|Fermi Searches for Gravitational Waves From Monster Black Holes (SVS14130 - BH banner GIF 2022-03-28 14 46 14).gif}}
ecp3sgzg9flgvuio8n2m5xir3sn2ose
739218
739217
2026-04-23T21:51:03Z
Wooze
54732
W
739218
wikitext
text/x-wiki
{{DISPLAYTITLE:<span style="position:absolute; top:-9999px;">User:</span><span style="font-family:Dancing Script, cursive; color:#006633" lang="en">Wooze</span>}}
nm4ntu85ohnvda906ike237a66a9ova
Vorlage:Coordinate/LonRange
0
148891
739221
560322
2026-04-24T00:03:35Z
InternetArchiveBot
34092
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
739221
wikitext
text/x-wiki
{{Infobox Gemeinde in Deutschland
|Art = Stadt
|Wappen = Reinbek Wappen.svg
|Breitengrad = 53.510211
|Längengrad = 10.250318
|Lageplan = Reinbek in OD.svg
|Bundesland = Schleswig-Holstein
|Kreis = Stormarn
|Höhe = 27
|PLZ = 21465
|Vorwahl = 040, 04104
|Gemeindeschlüssel = 01062060
|LOCODE = DE REI
|Gliederung = [[Liste der Bezirke und Stadtteile Reinbeks|6 statistische Bezirke und 22 Stadtteile]]
|Straße = Hamburger Straße 5–7
|Website = [https://www.reinbek.de/ www.reinbek.de]
|Bürgermeister = [[Björn Warmer]]
|Partei = SPD
}}
'''Reinbek''' ([[Niederdeutsche Sprache|niederdeutsch]] ''Reinbeek''), in der südlichen [[Geest]] [[Schleswig-Holstein]]s gelegen, ist mit etwa 28.000 Einwohnern die zweitgrößte Stadt im [[Kreis Stormarn]]. Die [[Mittelstadt]] liegt im östlichen Ballungsraum [[Hamburg]]s und gehört zur [[Metropolregion Hamburg]].
== Geografie ==
Die Ost- und Südgrenze Reinbeks bildet die zum ''Mühlenteich'' aufgestaute, naturgeschützte [[Bille]]. Die zwischen den Ortsteilen liegenden Flächen werden zum Teil noch landwirtschaftlich genutzt. Geprägt vom angrenzenden [[Sachsenwald]], bietet Reinbek ein grünes, erholsames Stadtbild. Ein Großteil der Stadt ist mit Einzelhäusern bebaut, das Gebiet rings um den Täby-Platz und das Paul Luckow-Stadion besteht zum großen Teil aus mehrstöckigen Mietshäusern, die im Stil der 1960er Jahre erbaut wurden. Das höchste von ihnen, das Sachsenwald-Hochhaus mit 20 Stockwerken, befindet sich in der Hamburger Straße. Zu Reinbek gehören die Stadtteile ''Alt-Reinbek'', [[Hinschendorf]], [[Schönningstedt]], [[Neuschönningstedt]], [[Ohe (Reinbek)|Ohe]] mit [[Büchsenschinken]] und das jüngere Neubaugebiet [[Krabbenkamp]] (→[[Liste der Bezirke und Stadtteile Reinbeks]]). Direkt angrenzend liegen die Hamburger Stadtteile [[Hamburg-Bergedorf|Bergedorf]] und [[Hamburg-Lohbrügge|Lohbrügge]].
== Geschichte ==
{{Hauptartikel|Geschichte der Stadt Reinbek}}
Von der Besiedlung des heutigen Reinbeker Gebietes in bereits vorgeschichtlicher Zeit zeugen zahlreiche [[Hügelgrab|Hügelgräber]]. Die erste urkundlich überlieferte Erwähnung Reinbeks datiert allerdings erst auf das Jahr 1238 und geht auf die Gründung des gleichnamigen [[Zisterzienserinnen]]klosters (siehe [[Kloster Reinbek]]) zurück. Die ältesten bekannten Schreibformen des Ortsnamens sind ''(ville) Reinebec'' (1238), ''(in) Reynebeke'' (1309 und 1350), ''(to deme) Reynenbeke'' (1400) und ''(tome) Rynenbeke'' (1466); der Name wird als Kompositum aus dem Grundwort ''bek'' für „Bach“ und dem Adjektiv „rein“ als Bestimmungswort gedeutet.<ref>[[Wolfgang Laur]]: ''Historisches Ortsnamenlexikon von Schleswig-Holstein'', 2. Aufl., S. 538.</ref> Nach der Zerstörung des Klosters (1534) gewann der Ort erst mit dem Bau der Schlossanlage (1572) wieder an Bedeutung.
[[Datei:Mühlenteich und Reinbeker Schloss im Winter.jpg|mini|Der Mühlenteich und das Reinbeker Schloss im Winter]]
Die Ansiedlung von Handwerkern im späten 18. Jahrhundert brachte endlich wirtschaftliches Wachstum. Einen entscheidenden Impuls für die Entwicklung des Ortes gab jedoch der Bau der Eisenbahnstrecke zwischen Hamburg und [[Berlin]] (1846): Reinbek wurde vorübergehend zum Kurort und beliebten Ausflugsziel. Die alte Schreibweise „Reinbeck“ wurde am 1. September 1877 durch eine Anordnung über die einheitliche Regelung der Schreibweise für Ortsnamen von der Provinzialregierung in Schleswig in „Reinbek“ geändert.
Zum Ende des [[Zweiter Weltkrieg|Zweiten Weltkrieges]] wurde Deutschland schrittweise besetzt. Am 3. Mai 1945 besetzten britischen Truppen auch Reinbek, das benachbarte [[Glinde]] sowie den letzten Teil des noch unbesetzten [[Kreis Stormarn|Stormarns]].<ref>[[Hamburger Abendblatt]]: [http://www.abendblatt.de/region/stormarn/article205288543/Vor-siebzig-Jahren-kapitulierte-die-Stadt-Ahrensburg.html Kriegsende. Vor siebzig Jahren kapitulierte die Stadt Ahrensburg], vom: 2. Mai 2015; abgerufen am: 31. Mai 2017</ref> Des Weiteren begann am Nachmittag des Tages auch die Besetzung [[Hamburg]]s, die zuvor in der [[Villa Möllering]] bei [[Lüneburg]] vereinbart worden war. Einen Tag später unterschrieb zudem [[Hans-Georg von Friedeburg]] im Auftrag des letzten [[Reichspräsident]]en [[Karl Dönitz]], der sich zuvor mit der [[Regierung Dönitz|letzten Reichsregierung]] in den [[Sonderbereich Mürwik]] abgesetzt hatte, die [[Teilkapitulation der Wehrmacht für Nordwestdeutschland, Dänemark und die Niederlande]].<ref>[https://web.archive.org/web/20131104080252/http://www.volksbund.de/fileadmin/redaktion/BereichInfo/Textsammlungen/Ausstellungen/0400_ausstellung_timeloberg/Timeloberg.pdf Die Kapitulation auf dem Timeloberg] (PDF, 16. S.; 455 kB)</ref> Die [[Bedingungslose Kapitulation der Wehrmacht]] folgte am 8. Mai 1945. Zum Kriegsende erlebte Reinbek einen verstärkten Zuzug von Flüchtlingen und durch Kriegseinwirkung obdachlos gewordenen Hamburgern.
Seit den 1960er Jahren wurden mehrere Gewerbegebiete erschlossen und erweitert. Am 28. Juni 1952 erhielt Reinbek das [[Stadtrecht]]. Am 1. Januar 1974 wurden die Gemeinde [[Schönningstedt]] (mit [[Neuschönningstedt]] und [[Ohe (Reinbek)|Ohe]]) sowie ein Teil der Gemeinde Glinde mit damals etwa 100 Einwohnern und ein Teil der aufgelösten Gemeinde Stemwarde eingegliedert.<ref>{{Literatur | Herausgeber = Statistisches Bundesamt | Titel = Historisches Gemeindeverzeichnis für die Bundesrepublik Deutschland. Namens-, Grenz- und Schlüsselnummernänderungen bei Gemeinden, Kreisen und Regierungsbezirken vom 27. Mai 1970 bis 31. Dezember 1982 | Jahr = 1983 | Verlag = W. Kohlhammer GmbH | Ort = Stuttgart/Mainz | ISBN = 3-17-003263-1 | Seiten = 186}}</ref> Im Jahre 1978 kam das bisher landwirtschaftlich genutzte Gebiet Krabbenkamp, das vormals zu Schönningstedt gehörte, als weiterer Stadtteil hinzu.
== Religion ==
Reinbek gehörte ursprünglich zum [[Kirchspiel]] [[Kirchsteinbek|Steinbek]], bis es 1894 zu einer eigenständigen [[Evangelisch-lutherische Kirchen|evangelisch-lutherischen]] [[Kirchengemeinde]] wurde. Die [[Neogotik|neogotische]] Kirche (heute Maria-Magdalenen-Kirche) wurde 1901 errichtet. 1908 gründete sich die [[Römisch-katholische Kirche|römisch-katholische]] Kirchengemeinde, die 1953 die Herz-Jesu-Kirche erbauen ließ. In Reinbek sind 44 % der Bevölkerung evangelisch und 9 % katholisch, 26 % gehören anderen Konfessionen an, 22 % sind ohne Religionszugehörigkeit. Die bedeutendsten Gemeinden der Stadt sind:
* [[Ansgar von Bremen|Ansgar]]-Kirchengemeinde Schönningstedt-Ohe (evangelisch-lutherisch)
* Kirchengemeinde [[Gethsemane]] Neuschönningstedt (evangelisch-lutherisch)
* [[Maria-Magdalenen-Kirche (Reinbek)|Maria-Magdalenen-Kirche]] (evangelisch-lutherisch)
* [[Nathan-Söderblom-Kirche (Reinbek)|Nathan-Söderblom-Kirche]] (evangelisch-lutherisch)
* [[Herz-Jesu-Kirche (Reinbek)|Herz-Jesu]]-Gemeinde (römisch-katholisch)
* [[Evangelisch-Freikirchliche Gemeinde]] ([[Baptisten]])
== Politik ==
=== Stadtvertretung ===
Die letzten drei Kommunalwahlen [[Kommunalwahlen in Schleswig-Holstein 2018|am 6. Mai 2018]], [[Kommunalwahlen in Schleswig-Holstein 2013|am 26. Mai 2013]]<ref>{{Webarchiv|url=http://www.reinbek.de/wahlen/KW2013.html |wayback=20160304064515 |text=Archivierte Kopie}}</ref> und [[Kommunalwahlen in Schleswig-Holstein 2008|am 25. Mai 2008]]<ref>{{Cite web |title=Archived copy |url=http://www.reinbek.de/files/Wahlen/GKW_25052008.pdf#page=10 |access-date=2023-02-21 |archive-date=2016-03-04 |archive-url=https://web.archive.org/web/20160304074748/http://www.reinbek.de/files/Wahlen/GKW_25052008.pdf#page=10 }}</ref> führten zu folgenden Ergebnissen:
{| class="wikitable"
| colspan="2" | '''Parteien und Wählergemeinschaften'''
| align="center" | '''%<br />2018'''
| align="center" | '''Sitze<br />2018'''
| align="center" | '''%<br />2013'''
| align="center" | '''Sitze<br />2013'''
| align="center" | '''%<br />2008'''
| align="center" | '''Sitze<br />2008'''
| rowspan="12" |{{Wahldiagramm
| LAND = DE
| TITEL = Kommunalwahl 2018
| JAHRALT = 2013
| JAHRNEU = 2018
| GUV = ja
| PARTEI1 = CDU
| ERGEBNIS1 = 27.5
| ERGEBNISALT1 = 30.7
| PARTEI3 = SPD
| ERGEBNIS3 = 20.7
| ERGEBNISALT3 = 26.6
| PARTEI2 = GRÜNE
| ERGEBNIS2 = 22.1
| ERGEBNISALT2 = 17.2
| PARTEI5 = Forum21
| ERGEBNIS5 = 11.0
| ERGEBNISALT5 = 13.2
| FARBE5 = 0000FF
| PARTEI4 = FDP
| ERGEBNIS4 = 17.0
| ERGEBNISALT4 = 10.9
| PARTEI6 = [[Klaus-Peter Puls|Puls]]
| ERGEBNIS6 = 1.7
| ERGEBNISALT6 = 1.5
| FARBE6 = CCCCCC
}}
| rowspan="12" |{{Sitzverteilung
| Land = DE
| Überschrift = Sitzverteilung in der Stadtverordnetenversammlung
| SPD|Grüne|Forum21|Puls|FDP|CDU|
| Legende = ja
| SPD = 6
| Grüne = 7
| Forum21 = 3
| Puls = 1
| FDP = 5
| CDU = 9
| Forum21 Farbe = 0000FF
| Puls Farbe = CCCCCC
| Puls Link = [[Klaus-Peter Puls|Puls]]
}}
|- style="text-align:right"
| style="text-align:left" | CDU
| style="text-align:left" | [[Christlich Demokratische Union Deutschlands]]
| 27,5
| 9
| 30,7
| 10
| 33,6
| 13
|- style="text-align:right"
| style="text-align:left" | SPD
| style="text-align:left" | [[Sozialdemokratische Partei Deutschlands]]
| 20,7
| 6
| 26,6
| 8
| 24,3
| 9
|- style="text-align:right"
| style="text-align:left" | GRÜNE
| style="text-align:left" | [[Bündnis 90/Die Grünen]]
| 22,1
| 7
| 17,2
| 5
| 15,4
| 5
|- style="text-align:right"
| Forum21
| Forum21
| 11,0
| 3
| 13,2
| 4
| 13,0
| 4
|- style="text-align:right"
| style="text-align:left" | FDP
| style="text-align:left" | [[Freie Demokratische Partei]]
| 17,0
| 5
| 10,9
| 3
| 13,8
| 5
|- style="text-align:right"
| style="text-align:left" | Puls
| style="text-align:left" | Einzelbewerber [[Klaus-Peter Puls]]<ref>http://www.bergedorfer-zeitung.de/printarchiv/reinbek/article188444/Kommunalwahl-am-26-Mai-2013-Vorstellung-der-Reinbeker-Kandidaten-Wahlkreis-13.html</ref><ref>http://www.abendblatt.de/region/stormarn/article115057641/Klaus-Peter-Puls-tritt-aus-der-SPD-aus.html</ref>
| 1,7
| 1
| 1,5
| 1
| —
| —
|- class="hintergrundfarbe5" style="text-align:right"
| colspan="2" style="text-align:left" | '''gesamt'''
| '''100,0'''
| '''31'''
| '''100,0'''
| '''31'''
| '''100,0'''
| '''36'''
|-
! colspan="2" style="text-align:left" | Wahlbeteiligung in %
! colspan="2" |
! colspan="2" | 45,5
! colspan="2" |
|}
[[Datei:Reinbeker Rathaus.JPG|mini|Reinbeker Rathaus]]
=== Bürgermeister ===
<!-- Amtsvorgänger bitte mit Amtszeit und Partei nachtragen -->
{| class="wikitable"
! colspan="2" | Amtszeit !! rowspan="2" | Name
|-
! von !! bis
|-
| 17. Februar 1931 || 13. September 1945
| Eduard Claußen (NSDAP)<ref>[https://www.museumsverein-reinbek.de/wp-content/uploads/2018/06/Eduard-Claussen.pdf ''Eduard Claußen''], museumsverein-reinbek.de</ref><ref>Claußen half trotz seiner NSDAP-Zugehörigkeit im Rahmen seiner Möglichkeiten mehreren jüdischen Einwohnern und sorgte dafür, dass Reinbek kampflos den Engländern übergeben wurde, vgl. dazu: Detlev Landgrebe: Kückallee 37. Eine Kindheit am Rande des Holocaust. Rheinbach 2009, ISBN 978-3-87062-104-9, S. 163, S. 167 u. a.</ref>
|-
| 15. Dezember 1945 || 31. Januar 1946 || Wilhelm Kleist
|-
| 1. Februar 1946 || 22. September 1946 || Carl Dobbertin
|-
| 23. September 1946 || 11. November 1948 || Alwin Hemken
|-
| 12. November 1948 || 28. April 1950 || Carl Dobbertin
|-
| 28. April 1950 || 31. März 1951 || Wilhelm Kleist
|-
| 1. April 1951 || 31. Dezember 1971 || [[Hermann Körner]]
|-
| 1. Januar 1972 || 31. Januar 1990 || Günther Kock
|-
| 1. Februar 1990 || 31. Januar 1996 || Manfred Neumann
|-
| 1. September 1996 || 31. August 2008 || Detlef Palm
|-
| 1. September 2008 || 31. August 2014 || [[Axel Bärendorf]]
|-
| 1. September 2014 || || [[Björn Warmer]]
|}
=== Wappen ===
[[Blasonierung]]: „In Rot ein silberner Wellenbalken, begleitet von drei im Dreipass mit den Stielen einander zugekehrten Eichenblättern, und zwar zwei oben und einem unten.“<ref>[{{SH-Wappenrolle|262|Stadt Reinbek, Kreis Stormarn|nurLink=1}} Kommunale Wappenrolle Schleswig-Holstein]</ref>
Die Blätter, in ihrer Anordnung an das Wappen der Familie [[Bismarck (Adelsgeschlecht)|Bismarck]] angelehnt, versteht man als Symbole für den [[Sachsenwald]], während das Band für die [[Bille]] steht. Eine ähnliche Symbolik findet sich auf den Wappen der Nachbarorte [[Wohltorf]] und [[Aumühle]]; die Farben Rot und Weiß entsprechen den Wappen [[Holstein]]s und [[Kreis Stormarn|Stormarns]]. Das Wappen wurde 1935 genehmigt.
=== Städtepartnerschaften ===
* 1956–2011: Städtefreundschaft mit [[Täby]] ([[Schweden]]). Der Marktplatz in Reinbek-Klosterbergen, der ''Täbyplatz'', wurde nach der Partnerstadt benannt.
* Seit 1961: Städtefreundschaft mit [[Königslutter am Elm]] ([[Niedersachsen]]).
* Seit 1974: Patenschaft zwischen der [[Freiwillige Feuerwehr|Freiwilligen Feuerwehr]] Ohe und der Gemeinde [[Padasjoki]] ([[Finnland]]).
* Seit 1999: Städtepartnerschaft mit [[Koło]] ([[Polen]]).
== Kultur und Sehenswürdigkeiten ==
[[Datei:Das Reinbeker Schloss.jpg|mini|Reinbeker Schloss]]
[[Datei:Museum Rade.JPG|mini|Ehemaliges Museum Rade]]
=== Theater, Kino und Museen ===
* Das Kultur- und Kongresszentrum ''Sachsenwald-Forum'' bietet ein wechselndes Programm von Tournee- und Privattheatern.
* Der Filmring Reinbek e. V. führt ehrenamtlich monatlich eine Kinoveranstaltung in der Nathan-Söderblom-Kirche durch.
* Das gegenüber vom Schloss gelegene ''Museum Rade'' stellte die Sammlung volkstümlicher Kunst des Hamburger Schriftstellers und Kunstsammlers [[Rolf Italiaander]] aus. Seit Sommer 2017 ist das Museum dauerhaft geschlossen, die Sammlung wurde Ende 2018 ins Schloss Reinbek verlegt
[[Datei:Reinbek Sankt Maria Magdalena.JPG|hochkant|mini|Maria-Magdalenen-Kirche]]
=== Bauwerke ===
[[Datei:Reinbek dänenbrücke P4070041.JPG|mini|„Dänenbrücke“ von 1793]]
[[Datei:RK 1810 P1650787 Bismarcksäule Friedrichsruh.jpg|mini|Bismarcksäule]]
Verschont von den Zerstörungswellen des Zweiten Weltkrieges, zeigt Reinbeks Stadtarchitektur ein kontinuierliches Bild durch die Epochen norddeutscher Baugeschichte, angefangen bei der niederländischen Renaissance und alten Bauernkaten, über [[großbürger]]liche Villen der Kaiserzeit, Klinkerexpressionismus der Weimarer Republik und Wohngroßbauten der 1970er bis hin zu einer eher behutsamen Architektur der 1990er Jahre.
* Ältestes und bedeutendstes Bauwerk ist das [[Schloss Reinbek]] im Stil der [[Niederländische Renaissance|Niederländischen Renaissance]]. [[Adolf I. (Schleswig-Holstein-Gottorf)|Herzog Adolf I. von Gottorf]] ließ das Schloss zwischen 1572 und 1576 in seiner heute noch vorhandenen Form errichten. Zunächst Nebenwohnsitz des Landesherren, war das Schloss in dänischer Zeit Residenz des Amtmannes und später kurzzeitig der Sitz des Landratsamtes für den [[Kreis Stormarn]]. Heute steht das originalgetreu restaurierte Gebäude für öffentliche Nutzung zur Verfügung.
* Über die 1793 erbaute ''Dänenbrücke'', in unmittelbarer Nähe zum Schloss, verlief einst der Verkehr zwischen dem dänischen Amt Reinbek und dem [[Herzogtum Sachsen-Lauenburg]].
* Die ''Schönningstedter Mühle'', erbaut 1886, wurde seit der Stilllegung (1968) als Gaststätte betrieben. Sie wurde durch einen Brand (1991) vollständig zerstört. Sie wurde durch eine andere am Ursprungsort abgebaute auf den Grundmauern der Alten Mühle neu errichtet.
* Die [[Bismarcksäule (Friedrichsruh)|Bismarcksäule]] auf dem ''Hammelsberg'' zwischen den Ortsteilen Krabbenkamp und Schönningstedt, in der Nähe des ehemaligen bismarckschen Guts Schönau, wurde 1903 fertiggestellt. Das 19 Meter hohe Monument entspricht dem üblichen Bismarcksäulen-Typus eines Feuerturmes, den [[Wilhelm Kreis]] 1898 entworfen hatte, und wurde aus Mitteln der deutschen Studentenschaft finanziert. Der Turm steht seit 1989 unter Denkmalschutz.
* In Reinbek gibt es [[Liste der Stolpersteine in Reinbek|sieben Stolpersteine]] zur Erinnerung an Opfer des [[Nationalsozialismus]].<ref>[http://www.akens.org/akens/texte/stolpersteine/Stolpersteineliste.htm#Reinbek Stolpersteine: Reinbek]</ref>
In der [[Liste der Kulturdenkmale in Reinbek]] stehen die in der Denkmalliste des Landes Schleswig-Holstein eingetragenen Kulturdenkmale.
=== Grünflächen und Naherholung ===
* Die Wald- und Wiesenlandschaft in und um Reinbek sowie der Schlosspark laden zum Spazieren, Wandern und Radfahren ein. Auf der Bille und auf dem Mühlenteich werden Kanufahrten veranstaltet.
* Jährlich wird in Reinbek auf dem Täbyplatz oder am ''Waldhaus'' im Sommer oder im Herbst die sogenannte „Reinbeker Sommersause“ bzw. „Reinbeker Herbstsause“ gefeiert. Bei diesen Festen treten unter anderem regionale Musiker und Coverbands auf.
=== Sport ===
* Das ''Freizeitbad Reinbek'' und der angrenzende ''Sport-Park Reinbek'' bieten neben einem Hallenbad mit Außenschwimmbecken auch eine Sauna und verschiedene Sportprogramme an.
* Die [[TSV Reinbek]] und der [[FC Voran Ohe]] bieten verschiedene Sportarten an.
== Wirtschaft, Infrastruktur, öffentliche Einrichtungen ==
=== Unternehmen ===
Reinbek zeichnet sich durch eine vielfältige, vorwiegend klein- und mittelständische Wirtschaftsstruktur aus.
Zahlreiche bedeutende Firmen hatten bzw. haben hier ihren Sitz, wie zum Beispiel der [[Rowohlt Verlag]] (von 1960 bis März 2019), E. Michaelis & Co. – Papiergroßhandel, [[Almirall]] Almirall Hermal und [[Dermapharm|Allergopharma]] (die seit Mai 2021 an der Herstellung des Impfstoffs von [[Biontech]] beteiligt sind)<ref>[https://www.ndr.de/nachrichten/schleswig-holstein/coronavirus/Corona-Biontech-Impfstoff-kommt-jetzt-auch-aus-Reinbek,spahn290.html ''Corona: Biontech-Impfstoff kommt jetzt auch aus Reinbek''] {{Webarchive|url=https://web.archive.org/web/20220328133934/https://www.ndr.de/nachrichten/schleswig-holstein/coronavirus/Corona-Biontech-Impfstoff-kommt-jetzt-auch-aus-Reinbek,spahn290.html |date=2022-03-28 }}, ndr.de, 30. April 2021</ref>, [[Fürst-Bismarck-Quelle]], Grossmann-Feinkost, [[Kahl Gruppe|Amandus Kahl]] (Neuhaus Neotec), Peek & Cloppenburg (Verteilzentrum) und Lutz Aufzüge (Maschinen- und Anlagentechnik), Wollenhaupt (Teehandel). Ein weiterer großer Arbeitgeber ist das Krankenhaus Reinbek St. Adolf-Stift (Gesundheitswesen).
Anfang der 1960er Jahre wurde das gemeinsame Gewerbegebiet Reinbek-[[Glinde]] erschlossen. Seitdem erfolgten immer wieder Erweiterungen und Neuausweisungen von Gewerbeflächen. Zuletzt wurde das Gewerbegebiet Haidland vermarktet (ca. 22 ha): bis 2018 sind dort mehr als 30 Firmen angesiedelt worden, dadurch wurden 1200 Arbeitsplätze gesichert und ca. 400 neu geschaffen. Geplant ist die Erweiterung des Gewerbegebietes.
Die wirtschaftliche Dynamik Reinbeks zeigt sich unter anderem in der Entwicklung der Gewerbebetriebe: deren Zahl stieg auf 2532 Betriebe (31. August 2018).
Auch die positiven Arbeitsmarktdaten sind ein Beweis für die Besonderheit des Standortes. Im Geschäftsstellenbezirk der Arbeitsagentur Bad Oldesloe wird der Bezirk Reinbek mit einer der niedrigsten Arbeitslosenquoten aufgeführt, vergleichbar mit denen süddeutscher Wirtschaftsregionen.
In der Region Südstormarn liegen einige der Kommunen mit der höchsten Kaufkraft in Deutschland. Auch Reinbek lag im Jahr 2017 mit einer Kaufkraftkennziffer von 118 über dem Durchschnitt (CIMA Lübeck, Jahresbericht interkommunales Einzelhandelsforum 2017).
Reinbek ist perspektivisch weiter ein dynamischer Wirtschaftsstandort mit einer hohen Gewerbeflächennachfrage und steigenden Gewerbesteuereinnahmen, u. a. wegen der verkehrsgünstigen zentralen Lage in der Metropolregion direkt benachbart der Weltstadt Hamburg. Die Arbeitsplatzzentralität ist mit einem knapp 80-%-Anteil an den Beschäftigten hoch.
=== Öffentliche Einrichtungen ===
Reinbek ist Sitz eines [[Amtsgericht]]s.
=== Bildung ===
In Reinbek gibt es vier [[Grundschule]]n, eine [[Gemeinschaftsschule mit Oberstufe]] (mit auslaufenden Haupt- und Realschulklassen) und ein [[Sachsenwaldschule Gymnasium Reinbek|Gymnasium]]. Außerdem gibt es eine [[Förderschule (Deutschland)|Förderschule]].
Gemeinschaftsschule und Förderschule sind zum Schulzentrum Mühlenredder zusammengefasst.
Die ''Volkshochschule Sachsenwald'' hat ein umfangreiches Angebot an Kursen verschiedener Fachrichtungen und deckt auch das Angebot für die Nachbargemeinde [[Wentorf bei Hamburg|Wentorf]] mit ab. Die meisten Kurse finden im eigenen, gut ausgestatteten Haus mitten in Reinbek statt.
Die ''Reinbeker Stadtbibliothek'' bietet ein breit gefächertes Angebot aus alten wie neuen Medien und unterhält einen ständigen Bücherflohmarkt aus gespendeten und ausgemusterten Büchern.
Seit 1989 besteht der [[Museumsverein Reinbek|Geschichts- und Museumsverein Reinbek e. V.]]
=== Verkehr ===
[[Datei:Reinbeker Bahnhof.jpg|mini|Der Reinbeker Bahnhof]]
Reinbek liegt in der [[Metropolregion Hamburg]]. Von Reinbek ist die Hamburger Innenstadt mit der [[S-Bahn Hamburg|S-Bahn-Linie]] S 21 in 25 Minuten zu erreichen. Die S-Bahn verbindet Reinbek mit den Nachbarorten [[Wohltorf]] und [[Bahnhof Aumühle|Aumühle]], innerhalb Reinbeks fahren mehrere Buslinien, die von den zum [[Hamburger Verkehrsverbund|HVV]] gehörenden [[VHH PVG Unternehmensgruppe|VHH]] betrieben werden.
Die Fernverkehrsstraßen [[Bundesstraße 5|B 5]], [[Bundesautobahn 24|A 24]] und [[Bundesautobahn 1|A 1]] führen in die Hamburger Innenstadt bzw. in Richtung [[Berlin]], [[Lübeck]] und [[Bremen]].
Der nächstgelegene Fernbahnhof ist [[Bahnhof Hamburg-Bergedorf|Hamburg-Bergedorf]], die [[Bahnstrecke Hamburg–Berlin]] durchquert die Stadt ohne Halt parallel zur S-Bahn.
== Persönlichkeiten ==
=== Ehrenbürger ===
<!-- chronologisch nach Geburtsdatum geordnet -->
{{Mehrspaltige Liste|liste=
* [[Paul Lingens]] (1895–1976), Stadtverordneter der CDU, Bürgervorsteher
* Karl Meißner (1912–2010), Stadtverordneter der SPD, Bürgervorsteher
* [[Georges-Arthur Goldschmidt]] (* 1928), französisch-deutscher Schriftsteller, Essayist und Übersetzer
* Lothar Zug (1928–2020), Stadtverordneter der CDU, Bürgervorsteher
* Helmut Schomann (1932–2009), Stadtverordneter der SPD, Bürgervorsteher
}}
=== Söhne und Töchter der Stadt ===
<!-- chronologisch nach Geburtsdatum geordnet -->
{{Mehrspaltige Liste|liste=
* [[Minna Specht]] (1879–1961), Pädagogin und Sozialistin
* [[Wilhelm Bisse]] (1881–1946), Reichstagsabgeordneter der NSDAP
* [[Horst Seifart]] (1916–2004), Journalist und Fernseh-Regisseur
* [[Donat de Chapeaurouge]] (1925–2019), Kunsthistoriker
* [[Georges-Arthur Goldschmidt]] (* 1928), französisch-deutscher Schriftsteller, Essayist und Übersetzer
* Helmut Schomann (1932–2009), Politiker, Ehrenbürger und Träger des Bundesverdienstkreuzes
* [[Hartmut Berg]] (* 1936), Wirtschaftswissenschaftler
* [[Ekkehard Wachmann]] (* 1937), Entomologe
* [[Wittko Francke]] (1940–2020), Chemiker
* [[Hans Klapdor-Kleingrothaus]] (* 1942), Physiker
* [[Klaus-Peter Puls]] (* 1943), Politiker
* [[Albert Maringer]] (* 1945), Manager
* [[Wolfgang Seifert (Japanologe)|Wolfgang Seifert]] (* 1946), Japanologe
* [[Claus Peter Ortlieb]] (1947–2019), Mathematiker
* [[Eckart Modrow]] (* 1948), Pädagoge und Sachbuchautor
* [[Johannes Spallek]] (* 1948), Archivar und Kulturreferent
* [[Christine Christ-von Wedel]] (* 1948), Historikerin
* [[Dieter Matz]] (* 1948), Sportjournalist
* [[Angela Sommer-Bodenburg]] (* 1948), Kinderbuchautorin und Malerin; bekannt wurde sie durch ihre Bücher über den ''Kleinen Vampir''
* [[Christel Hüttemann]] (* 1949), Trägerin des Bundesverdienstkreuzes
* [[Mathias Nolte]] (* 1952), Buchautor und Journalist
* [[Mathias Petersen]] (* 1955), Politiker
* [[Harald Lemke (Politiker, 1956)|Harald Lemke]] (* 1956), Staatssekretär
* [[Norbert Meier]] (* 1958), Fußballtrainer und ehemaliger -spieler
* [[Sabine Sütterlin-Waack]] (* 1958), Rechtsanwältin und Politikerin (CDU)
* [[Martin Rheinheimer]] (* 1960), Historiker
* [[Jan van Aken (Politiker)|Jan van Aken]] (* 1961), Politiker
* [[Dietrich Becker (Diplomat)|Dietrich Becker]] (* 1961), Diplomat
* [[Ralf Sommer (Elektroingenieur)|Ralf Sommer]] (* 1961), Elektroingenieur
* [[Thomas Röske]] (* 1962), Kunsthistoriker
* [[Gerd Gottlob]] (* 1964), Journalist und Fußballkommentator
* [[Gundula Bavendamm]] (* 1965), Historikerin und Kulturmanagerin
* [[Christiane Bruns (Medizinerin)|Christiane Bruns]] (* 1965), Chirurgin
* [[Kerstin Drechsel]] (* 1966), Malerin
* [[Andreas Herbig]] (1966–2022), Produzent, Echopreisträger
* [[Birte Karalus]] (* 1966), Journalistin und Moderatorin
* [[Lena Johannson]] (* 1967), Schriftstellerin
* [[Michael Meyer-Hermann (Physiker)|Michael Meyer-Hermann]] (* 1967), Physiker und Hochschullehrer
* [[Thorsten Schröder]] (* 1967), Journalist, Moderator und Sprecher der Tagesschau
* [[Lars Uwe Höltich]] (* 1968), TV-Producer
* [[Sönke Lieberam-Schmidt]] (* 1969), Wirtschaftsinformatiker und Professor
* [[Heiko Nieder]] (* 1972), Koch, mit zwei Sternen im ''Guide Michelin'' ausgezeichnet
* [[Christine Berger]] (* 1973), Theater- und Fernsehschauspielerin
* [[Andreas Dobberkau]] (* 1975), Schauspieler
* [[Helmut Fritz]] (* 1975), fiktiver Popsänger
* [[Julian Krafftzig]] (* 1977), Radiomoderator
* [[Torben Liebrecht]] (* 1977), Schauspieler, Regisseur und Drehbuchautor
* [[Alexander Nerlich]] (* 1979), Regisseur
* [[Imke Wedekind]] (* 1984), Volleyballspielerin
* [[Ann-Kathrin Karschnick]] (* 1985), Fantasy-Autorin
* [[Max Kruse (Fußballspieler)|Max Kruse]] (* 1988), Fußballspieler
* [[Marvin Boadu]] (* 1989), Basketballspieler
* [[Felix Brügmann]] (* 1992), Fußballspieler
* [[Maximilian Buhk]] (* 1992), Automobilrennfahrer
* [[Felix von der Laden]] (* 1994), Webvideoproduzent (bekannt als „Dner“), Automobilrennfahrer und Unternehmer
* [[Sina Aylin Demirhan]] (* 1994), Politikerin (Bündnis 90/Die Grünen)
* [[Larina Aylin Hillemann]] (* 1996), Ruderin
* [[Victoria Helene Bergemann]] (* 1997), Komikerin und Autorin
* [[Noma Noha Akugue]] (* 2003), Tennisspielerin
}}
=== Mit Reinbek verbunden ===<!-- chronologisch nach Geburtsdatum geordnet -->
{{Mehrspaltige Liste|liste=
* [[Georg Julius Andresen]] (1815–1882), Autor, Mediziner, Hydrotherapeut und Gründer des Sophienbads
* [[Arthur Goldschmidt (Jurist)|Arthur Goldschmidt]] (1873–1947), Jurist und Politiker
* [[Hans E. B. Kruse]] (1891–1968), Kaufmann und Hamburger Senator, wohnte und starb in Reinbek
* [[Franz Heske]] (1892–1963), Forstwissenschaftler
* [[Bernhard Rogge (Marineoffizier)|Bernhard Rogge]] (1899–1982), Admiral
* [[Helene Francke-Grosmann]] (1900–1990), Forstwissenschaftlerin
* [[Erwin Freytag]] (1907–1987), Autor und evangelisch-lutherischer Theologe
* [[Heinrich Maria Ledig-Rowohlt]] (1908–1992), bis 1982 Verleger des [[Rowohlt Verlag]]s
* [[Rolf Italiaander]] (1913–1991), Schriftsteller, Übersetzer, Forschungsreisender, Ethnograf
* [[Sandro von Lorsch]] (1919–1992), Maler
* [[Arwed Imiela]] (1929–1982), Frauenmörder
* [[Günter Gaus]] (1929–2004), Journalist, Publizist, Diplomat und Politiker
* [[Hans-Jürgen von Maydell]] (''Baron Maydell''; 1932–2010), Forstwissenschaftler
* [[Heinz-Georg Keerl]] (1946–2011), General
* [[Thomas Straubhaar]] (* 1957), Ökonom
* [[Holger Waldenberger]] (* 1967), Quizspieler
* [[Bjarne Mädel]] (* 1968), Schauspieler
* [[Moritz Bleibtreu]] (* 1971), Schauspieler
* [[Ann-Katrin Schröder]] (* 1973), Journalistin und Fernsehmoderatorin
* [[Bodo Wartke]] (* 1977), Musik-Kabarettist
* [[Martin Habersaat]] (* 1977), Politiker, lebt seit 2014 in Reinbek
* [[Julian Reister]] (* 1986), Tennisspieler
}}
== Literatur ==
;Antiquarisch
* Mathilde Weise-Minck: ''Kindertage in Reinbek.'' Piper, München 1947, {{DNB|576902853}}.
* Curt Davids: ''Festschrift zur 725-Jahrfeier von Reinbek.'' 1963, {{DNB|451252543}}.
* Walter Fink: ''Das Amt Reinbek.'' Zentralstelle f. Personen- u. Familiengeschichte, Frankfurt am Main 1969, {{DNB|999410660}}.
* Herbert Rathmann: ''Ich bin ein Reinbeker.'' 1978, {{OCLC|248265316}}.
* Curt Davids: ''Die Wassermühle in Reinbek.'' 1982, {{DNB|840196717}}.
* Hans Heuer: ''Das Kloster Reinbek.'' Beitrag zur Geschichte der Landschaft Stormarn. Wachholtz, Neumünster 1985, ISBN 3-529-02186-5.
* [[Dirk Bavendamm]]: ''Reinbek. Geschichte einer holsteinischen Stadt zwischen Hamburg und Sachsenwald.'' 1988, ISBN 3-9801817-0-7.
* ''Reinbek in alten Ansichten.'' Bildband. Europäische Bibliothek, Zaltbommel 1996, ISBN 90-288-6082-7.
;Aktuellere Titel
* Wolf Gütschow, Michael Zapf: ''Reinbek und der Sachsenwald im Wandel.'' Bildband. Schubert, Hamburg 1997, ISBN 3-929229-44-7.
* ''Reinbek gestern und heute.'' Bildband. Europäische Bibliothek, Zaltbommel 2000, ISBN 90-288-6634-5.
* Georges-Arthur Goldschmidt: ''Ein Garten in Deutschland.'' 2000, ISBN 3-250-10118-4.
* Frank Göhre: ''Endstation Reinbek.'' Krimi. Hamburger Abendblatt, Hamburg 2001, ISBN 3-921305-20-9.
* Antje Wendt: ''Das Schloß Reinbek.'' Wachholtz, Neumünster 1994, ISBN 3-529-02739-1.
* Detlev Landgrebe: ''Kückallee 37: Eine Kindheit am Rande des Holocaust.'' CMZ, Rheinbach 2009, ISBN 978-3-87062-104-9.
== Weblinks ==
{{Commonscat}}
{{Wikivoyage}}
* [https://www.reinbek.de/ Website der Stadt Reinbek]
== Einzelnachweise ==
<references />
{{NaviBlock
|Navigationsleiste Städte und Gemeinden im Kreis Stormarn
|Navigationsleiste Stadtteile von Reinbek}}
{{Normdaten|TYP=g|GND=4049222-9|LCCN=n50052582|VIAF=312788140}}
[[Kategorie:Ort im Kreis Stormarn]]
[[Kategorie:Ort an der Bille]]
[[Kategorie:Reinbek| ]]
[[Kategorie:Ersterwähnung 1238]]
[[Kategorie:Stadt in Schleswig-Holstein]]
[[Kategorie:Stadtrechtsverleihung 1952]]
662mj3g32r6t7m0uw1b3ydmnt611kvz
Test
0
155073
739175
739174
2026-04-23T12:34:34Z
~2026-24968-07
73677
739175
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também.
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
3c7434ofh9bvabnpv2ngpnpftchxpkn
739180
739175
2026-04-23T14:43:50Z
~2026-21716-09
73454
/* Enredo */
739180
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
hz0q2mt67j1e48rc7g9ydql92u37tyl
739183
739180
2026-04-23T16:33:08Z
~2026-25025-15
73681
test
739183
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..test
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
68ohis5gjpq5n8mub4nwj0gl226nyz7
739184
739183
2026-04-23T16:33:17Z
HArroyo-WMF
67600
showcaptcha
739184
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..test
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
8dit21cj9albmzrmke00jdbv5a1bql5
739185
739184
2026-04-23T16:34:07Z
HArroyo-WMF
67600
test
739185
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..test
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
oqb4nwpoksfm43dsj7w2albqsfx055z
739186
739185
2026-04-23T16:34:20Z
~2026-25025-15
73681
showcaptcha
739186
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
nzrc96tm19dkv5wbbj42vv5zzcwah6j
739187
739186
2026-04-23T16:34:52Z
HArroyo-WMF
67600
showcaptcha
739187
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
aexxvopdu9oj1s83uqql2sna7ubklw1
739188
739187
2026-04-23T16:36:16Z
HArroyo-WMF
67600
test
739188
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
1l24yra2ow31ojivqzgbhc7t0juspwz
739189
739188
2026-04-23T16:38:09Z
~2026-24825-30
73682
test
739189
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
nn4o17z8ky0m4a16ky214y2cn8wj1jm
739190
739189
2026-04-23T16:38:48Z
~2026-24825-30
73682
test
739190
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
tpgfd01b5or5e9in3ibv5d8zzcm70eb
739191
739190
2026-04-23T16:39:44Z
~2026-24825-30
73682
test
739191
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
qcsrsme8lq64qn4r2xzr11jvflm8ni8
739192
739191
2026-04-23T16:40:53Z
~2026-24825-30
73682
test
739192
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
prpbsn2pqmhr75jx790g21i0hr1hm7y
739193
739192
2026-04-23T16:43:39Z
~2026-24825-30
73682
test
739193
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
eax2wjvhl4lza7v4or1c11y5cb2kgyv
739194
739193
2026-04-23T16:44:05Z
~2026-24825-30
73682
test
739194
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
0blgyqrt7hh9jhld6ad415gwj076lnb
739195
739194
2026-04-23T16:52:15Z
~2026-24825-30
73682
test
739195
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
djftoy6ggw7vrrl7og02vrfkgbd7yg0
739196
739195
2026-04-23T16:54:05Z
~2026-24825-30
73682
test
739196
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
fz3w4bfw1da5gr487h2s8x645kdk15z
739229
739196
2026-04-24T11:39:36Z
~2026-25063-18
73692
showcaptcha
739229
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
<references />
T423840-test
achjioezg91uv2ul5scn5w3cekgq7km
739230
739229
2026-04-24T11:45:06Z
~2026-25063-18
73692
showcaptcha second
739230
wikitext
text/x-wiki
{{Ver desambig|este=o filme de Marcel Camus|a peça teatral de Vinícius de Moraes|Orfeu da Conceição}}
{{Info/Filme
|título = Orfeu Negro
|título-pt = Orfeu Negro
|título-br = Orfeu do Carnaval
|imagem = [[Imagem:Orfeu Negro, 1959.jpg|Orfeu Negro, 1959|230px]]
|ano = 1959test
|duração = 100
|idioma = [[Língua portuguesa|Português]]
|país = [[Brasil]] • [[França]] • [[Itália]]
|direção = [[Marcel Camus]]
|roteiro = Marcel Camus<br />[[Jacques Viot]]
|criação original = {{Baseado em|[[Orfeu da Conceição]]|[[Vinicius de Moraes]]}}
|produção = Sasha Gordine.
|co-produtor = .
|produção executivo =
|música = [[Tom Jobim]]<br />[[Luiz Bonfá]]
|edição = Andrée Feix
|diretor de arte =
|diretor de fotografia = [[Jean Bourgoin]]
|figurino =
|precedido_por =
|seguido_por =d
|estúdio = Dispat Films<br />Gemma Cinematografica<br />Tupan Filmes
|elenco = [[Breno Mello]]<br />[[Marpessa Dawn]]<br />[[Lourdes de Oliveira]]<br />[[Léa Garcia]]
|código-IMDB = 0053146
|tipo = LF
|cor-pb = cor.
}}
'''''Orfeu Negro'''''<ref>{{Citation|title=Orfeu do Carnaval|url=https://www.adorocinema.com/filmes/filme-261/|accessdate=2023-02-18|language=pt-BR|last=AdoroCinema}}</ref> ou '''''Orfeu do Carnaval'''''<ref>{{Citar web|url=https://web.archive.org/web/20130522152505/http://noticias.r7.com/rio-de-janeiro/noticias/a-espera-de-obama-chapeu-mangueira-e-babilonia-preparam-documentario-e-cartas-ao-presidente-20110316.html|titulo=À espera de Obama, Chapéu Mangueira e Babilônia preparam documentário e cartas ao presidente - Rio de Janeiro - R7|data=2013-05-22|acessodata=2023-02-18|website=web.archive.org}}</ref> (na [[França]], '''''Orphée Noir'''''; na [[Itália]], '''''Orfeo Negro''''') é um [[filme]] ítalo-franco-[[brasil]]eiro de [[1959 no cinema|1959]], dirigido por [[Marcel Camus]] e com [[roteiro]] adaptado por Camus e [[Jacques Viot]] a, partir da [[peça teatral]] ''[[Orfeu da Conceição]]'', de [[Vinícius de Moraes]]..testtest
A trilha sonora é de [[Tom Jobim]] e [[Luís Bonfá]]. Vinícius e [[Antônio Maria de Araújo Morais|Antônio Maria]] também tiveram músicas incluídas, mas, assim como [[Agostinho dos Santos]], que interpretou a música-tema de Orfeu, "[[Manhã de Carnaval]]", não receberam os créditos. O filme teve outra versão em 1999, sob o nome ''[[Orfeu (filme)|Orfeu]]'', dirigida por [[Cacá Diegues]]<nowiki/>test
O filme ganhou o [[Oscar de Melhor Filme Internacional]] em 1960, representando a França.<ref>{{citar web|título=A França no Oscar: veja a lista dos filmes franceses premiados|url=http://blogs.oglobo.globo.com/paris/post/a-franca-no-oscar-veja-lista-dos-filmes-franceses-premiados-561194.html|acessodata=2 de Junho de 2016}}</ref> Trata-se da primeira produção de [[língua portuguesa]] a conquistar a estatueta do [[Oscar]].<ref>{{citar web|título=Quando os portugueses chegaram aos Óscares|url=http://mag.sapo.pt/cinema/atualidade-cinema/artigos/quando-os-portugueses-chegaram-aos-oscares?artigo-completo=sim|acessodata=2 de Junho de 2016}}</ref> É também, juntamente com ''[[Mustang (filme)|Mustang]]'', ''[[Emilia Pérez|Emilia Perez]]'' e ''[[Un Simple Accident|It Was Just an Accident]]'', um dos filmes não francófonos a representar a França no [[Oscar]].
test test test test test test test test test test test test test test test test test test
== Enredo ==
O enredo é inspirado na [[mitologia grega]], na história de [[Orfeu]] e [[Eurídice]]. A adaptação ambientou a obra no Brasil, em uma [[favela]] do [[Rio de Janeiro (cidade)|Rio de Janeiro]], na época do [[Carnaval]]. Eurídice vem fugida do [[Sertão brasileiro|sertão nordestino]] para morar na favela com sua prima Serafina. Ela tem medo de um homem que está perseguindo-a e quer matá-la; ela não sabe o motivo, mas pensa que esse homem talvez tenha gostado dela e, como ela não lhe deu confiança, ele agora quer se vingar. Ela apaixona-se perdidamente por Orfeu, que é noivo da bela e sedutora Mira. O tempo passa, Mira passa a perseguir Eurídice, com ciúmes. Serafina ajuda a prima a namorar Orfeu. Eurídice conhece o carnaval [[Carioca (gentílico)|carioca]] ao lado de Orfeu, mas sempre se apavora e corre quando vê que o tal homem está perto.
Um dia, ela revela tudo a Orfeu. Ele a protege e diz que vai ficar ao seu lado. O namoro deles é puro e inocente, sem malícia. Passa o tempo. Um dia, se divertindo no último dia de carnaval, Eurídice teme que o homem apareça, e acha melhor voltar para a favela, que fica perto. Ela entra num beco escuro, para subir a favela, mas ela não conhece bem o local e fica assustada. O homem a encontra e a persegue. Ela sai correndo desesperada e entra num galpão velho e escuro. Ela tenta se esconder do homem, mas este a acha. Desesperada, ela pula de um tablado e se segura em um fio de alta tensão. Orfeu chega e liga a tensão, Eurídice cai e morre eletrocutada. Orfeu briga com homem e fica inconsciente, quando acorda se dá conta dos fatos. Ele fica desolado.
A ambulância chega e leva o corpo ao [[Instituto Médico Legal]]. Ele não pode ir junto. [[Quarta-feira de cinzas]] e Orfeu só sabe chorar. Ele vai atrás do corpo, faz uma sessão [[Espiritismo|espírita]] na qual Eurídice baixa no corpo de uma senhora, mas, enfim, Orfeu acha seu corpo. Ele sequestra-o e leva à favela. Mira vê, e enfurecida, joga uma pedra na cabeça de Orfeu. Com a pancada ele cai de uma ribanceira com o corpo morto de Eurídice nos braços e morre também..
== Elenco principal ==
[[Ficheiro:Marpessa Dawn, 1959.tif|miniaturadaimagem|[[Breno Mello]] e [[Marpessa Dawn]] atuando em Orfeu Negro]]
* [[Breno Mello]] .... Orfeu
* [[Marpessa Dawn]] .... Eurídice
* [[Lourdes de Oliveira]] .... Mira
* [[Léa Garcia]] .... Serafina
* [[Adhemar Ferreira da Silva]] .... Morte
* [[Alexandro Constantino]] .... Hermes
* [[Waldemar de Souza|Waldir de Souza]] (Waldir 59) .... Chico Bôto
* [[Jorge dos Santos]] .... Benedito
* [[Aurino Cassiano]] .... Zeca
* [[Tião Macalé]] .... Homem vendendo o Gramofone.
* [[Cartola_(compositor)|Cartola]] (participação especial)
== Principais prêmios e indicações ==
[[Festival de Cannes]] 1959 (França)
* Recebeu a [[Palma de Ouro]].
''[[Óscar|Oscar]]'' 1960 (EUA)
* Vencedor na categoria de melhor filme em língua estrangeira (português/diretor).
[[Prêmios Globo de Ouro|Globo de Ouro]] 1960 (EUA)
* Venceu na categoria de melhor filme estrangeiro (França).
''[[BAFTA|British Academy of Film and Television Arts]]'' 1961 (Reino Unido)
* Indicado na categoria de melhor filme em língua estrangeira (Brasil, França e Itália/produção).
== Influência ==
Orfeu Negro foi citado por [[Jean-Michel Basquiat]] como uma de suas primeiras influências musicais, enquanto [[Barack Obama]] observa em seu livro de memórias [[Dreams from My Father]] (1995) que era o filme favorito de sua mãe.<ref name=":0">{{Citar web|ultimo=|url=https://www.correiobraziliense.com.br/app/noticia/diversao-e-arte/2010/06/05/interna_diversao_arte,196187/obama-e-quase-brasileiro.shtml|titulo=Obama é 'quase' brasileiro|data=18-2-2023|acessodata=2023-02-18|website=Acervo|lingua=pt-BR}}</ref>
Obama, no entanto, não compartilhar preferências de sua mãe após a primeira a ver o filme durante seus primeiros anos na [[Universidade Columbia|Universidade de Columbia]]: "de repente eu percebi que a representação dos negros infantis que eu estava vendo agora na tela, a imagem inversa de selvagens escuros de Conrad, era o que minha mãe tinha levado com ela para o [[Havaí]] todos aqueles anos antes, um reflexo das fantasias simples que haviam sido proibidas de uma menina branca, de classe média do [[Kansas]], a promessa de uma outra vida: quente, sensual, exótica, diferente.<ref name=":0" />
== Remakes e adaptações ==
Em [[1999]], um novo filme, [[Orfeu (filme)|Orfeu]], foi feita por [[Cacá Diegues]], com uma trilha sonora que caracteriza o cantor e compositor brasileiro [[Caetano Veloso]]. O diretor disse que não era um remake de Orfeu Negro, mas um filme baseado na peça original de Vinicius de Moraes, de 1956.<ref>{{Citar web|url=https://www1.folha.uol.com.br/fsp/ilustrad/fq23049921.htm|titulo=Folha de S.Paulo - Cinema - "Orfeu": Filme confirma mito, diz Caetano Veloso - 23/04/1999|acessodata=2023-02-18|website=www1.folha.uol.com.br}}</ref>
Em julho de 2014, uma adaptação musical de Broadway Orfeu Negro foi anunciada, a ser escrita por [[Lynn Nottage]] e dirigido por George C. Wolfe.<ref>{{Citar web|ultimo=Archive|primeiro=View Author|ultimo2=Twitter|primeiro2=Follow on|url=https://nypost.com/2020/02/13/antonio-carlos-jobims-music-finally-coming-to-broadway/|titulo=Antônio Carlos Jobim's music finally coming to Broadway|data=2020-02-13|acessodata=2023-02-18|lingua=en-US|ultimo3=feed|primeiro3=Get author RSS}}</ref>
== Na cultura popular ==
Cenas do filme foram utilizados no lyric vídeo da música Afterlife da banda [[Arcade Fire]], de 2013.<ref>{{Citar web|ultimo=G1|primeiro=Do|ultimo2=Paulo|primeiro2=em São|url=http://g1.globo.com/musica/noticia/2013/10/arcade-fire-lanca-clipe-com-imagens-do-filme-orfeu-do-carnaval.html|titulo=Arcade Fire lança clipe com imagens do filme 'Orfeu do Carnaval'|data=2013-10-22|acessodata=2023-02-18|website=Música|lingua=pt-br}}</ref>
== Ver também ==
* [[Lista de indicações brasileiras ao Oscar]]
{{Referências}}
== Bibliografia ==
* {{Citar periódico|ultimo=Campos-Muñoz|primeiro=Germán|data=2012|titulo=Contrapuntos órficos: Mitografía brasileña y el mito de Orfeo|url=https://muse.jhu.edu/article/502895|jornal=Latin American Research Review|lingua=es|volume=47|numero=4|paginas=31–48|doi=10.1353/lar.2012.0048|issn=1542-4278}}
{{Oscar de melhor filme estrangeiro}}
{{Palma de Ouro}}
{{Portal3|Cinema|Rio de Janeiro|Brasil|França|Itália}}
{{Controle de autoridade}}
[[Categoria:Filmes do Brasil de 1959]]
[[Categoria:Filmes da França de 1959]]
[[Categoria:Filmes da Itália de 1959]]
[[Categoria:Filmes de drama da Itália]]
[[Categoria:Filmes premiados com o Oscar de melhor filme internacional]]
[[Categoria:Filmes premiados com a Palma de Ouro]]
[[Categoria:Filmes baseados em peças de teatro]]
[[Categoria:Filmes premiados com o Globo de Ouro de melhor filme em língua estrangeira]]
[[Categoria:Filmes de drama do Brasil]]
[[Categoria:Filmes de drama da França]]
[[Categoria:Filmes de fantasia romântica]]
[[Categoria:Filmes em língua portuguesa]]
[[Categoria:Filmes baseados na mitologia greco-romana]]
[[Categoria:Filmes ambientados na cidade do Rio de Janeiro]]
[[Categoria:Filmes gravados na cidade do Rio de Janeiro]]
[[Categoria:Filmes sobre afro-brasileiros]]
[[Category:Wiki_Club_SHUATS]]
== Testing ==
cross-origin edit
testing hCaptcha bot detection
<references />
T423840-test
Second
h28okspbqwovmpvravcuzjkhe16colp
User:SSethi (WMF)/Main Page
2
174790
739201
737479
2026-04-23T18:06:53Z
SSethi (WMF)
36407
Updated Main Page via StarterKit tool
739201
wikitext
text/x-wiki
{{User:SSethi (WMF)/Starter kit/Welcome banner}}
<div style="margin-top: 10px;">{{User:SSethi (WMF)/Starter kit/Translation resources}}</div>
<div style="margin-top: 10px;">{{User:SSethi (WMF)/Starter kit/Wikipedia's sister projects}}</div>
<div style="margin-top: 10px;">{{User:SSethi (WMF)/Starter kit/Wikipedia languages}}</div>
__NOTOC__
m58kk6q2khyyskq5dzbi9wl9o0aer37
User:Wooze/common.js
2
174857
739231
739015
2026-04-24T11:58:18Z
Wooze
54732
739231
javascript
text/javascript
mw.loader.using(['mediawiki.api']).then(function () {
var api = new mw.Api();
function createButton() {
var btn = $('<button>')
.text('⚡Mass Undo')
.css({
position: 'fixed',
bottom: '20px',
right: '20px',
zIndex: 9999,
padding: '10px',
background: '#222',
color: '#fff',
borderRadius: '8px',
border: 'none'
})
.on('click', openUI);
$('body').append(btn);
}
function openUI() {
var user = prompt("Kullanıcı adı:");
if (!user) return;
api.get({
action: 'query',
list: 'usercontribs',
ucuser: user,
uclimit: 20,
ucprop: 'ids|title'
}).done(function (data) {
var contribs = data.query.usercontribs;
var box = $('<div>').css({
position: 'fixed',
top: '5%',
left: '5%',
width: '90%',
height: '85%',
background: '#fff',
overflow: 'auto',
padding: '10px',
zIndex: 9999
});
var log = $('<div>').css({ fontSize: '12px' });
function undoOne(c, callback) {
api.post({
action: 'edit',
title: c.title,
undo: c.revid,
token: mw.user.tokens.get('csrfToken'),
summary: 'Toplu geri alma via [[Kullanıcı:Wooze/tektiklagerial.js|TTGA]]'
}).done(function () {
log.append("<div>✅ " + c.title + "</div>");
}).fail(function (err) {
log.append("<div>❌ " + c.title + " → " + JSON.stringify(err) + "</div>");
}).always(function () {
setTimeout(callback, 1200);
});
}
function runQueue(list) {
var i = 0;
function next() {
if (i >= list.length) {
log.append("<b>🎯 Bitti</b>");
return;
}
var c = list[i];
log.append("<div>⏳ " + c.title + "</div>");
undoOne(c, function () {
i++;
next();
});
}
next();
}
var runBtn = $('<button>')
.text("Hepsini Geri Al")
.css({ background: '#d33', color: '#fff', margin: '5px' })
.on('click', function () {
runQueue(contribs);
});
var closeBtn = $('<button>')
.text("Kapat")
.on('click', function () {
box.remove();
});
box.append("<h3>Mass Undo Panel</h3>", runBtn, closeBtn, log);
$('body').append(box);
});
}
$(createButton);
});
9powi2saqp8hjgeq66hut6mesd4icze
User:MrJaroslavik/CheckUserLogCount.js
2
174966
739200
739098
2026-04-23T17:59:26Z
MrJaroslavik
44012
edit
739200
javascript
text/javascript
// CheckUserLogCount.js
// Based on countCUStats.js - https://meta.wikimedia.org/wiki/User:Glaisher/countCUStats.js
// Features:
// - Counts total CheckUser actions per user within a selected date range.
// - Breakdown by Total actions, Months, Quarters (Q1–Q4), or Years
// - Adds an interactive control panel directly to the [[Special:CheckUserLog]] page.
// - Shows a sortable table with direct links to user CheckUsers log entries.
// - Automatically loads all data even for very busy periods.
// - Shows the date of the very last CheckUser action for every user in the results.
// - Highlights current CheckUsers with green background and identifies inactive ones.
// - Generates ready-to-copy Wikitext table.
// - With help of Gemini 3
(function() {
'use strict';
// Only run on the CheckUserLog special page
if (mw.config.get('wgCanonicalSpecialPageName') !== 'CheckUserLog') {
return;
}
// Helper function to pause execution (useful for preventing API limits)
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
// Makes API calls with automatic retries for "429 Too Many Requests" errors
async function robustCall(api, params) {
let retries = 0;
const maxRetries = 3;
while (retries < maxRetries) {
try {
return await api.get(params);
} catch (err) {
if (err && err.status === 429) {
retries++;
const waitTime = parseInt(err.xhr && err.xhr.getResponseHeader('Retry-After')) || (30 * retries);
$('#status-msg, #cu-loader').html(
`<span style="color:orange; font-weight:bold;">Server is busy! Pausing for ${waitTime} seconds...</span>`
).show();
await sleep(waitTime * 1000);
} else {
throw err;
}
}
}
throw new Error("Failed to reach API after multiple attempts due to server limits.");
}
// Returns a standardized UTC timestamp for report headers (YYYY-MM-DD HH:MM)
function getReportTimestamp() {
return new Date().toISOString().replace('T', ' ').substring(0, 16) + ' (UTC)';
}
// Load required MediaWiki modules for API and UI
mw.loader.using(['mediawiki.api', 'mediawiki.util', 'jquery.tablesorter']).then(async function() {
const api = new mw.Api();
const now = new Date();
const currYear = now.getUTCFullYear();
const currMonth = now.getUTCMonth() + 1;
// Build the user interface panel
function setupUI() {
// Prevent duplicate panels on the page
$('.cu-stats-wrapper').remove();
// Generate year options (from 2005 to present)
let yearOpts = '';
for (let y = currYear; y >= 2005; y--) {
yearOpts += `<option value="${y}">${y}</option>`;
}
// Generate month selection menus
let monthOptsFrom = '';
let monthOptsTo = '';
for (let m = 1; m <= 12; m++) {
const label = String(m).padStart(2, '0');
// Default starting month to January
monthOptsFrom += `<option value="${m}" ${m === 1 ? 'selected' : ''}>${label}</option>`;
// Default ending month to current month
monthOptsTo += `<option value="${m}" ${m === currMonth ? 'selected' : ''}>${label}</option>`;
}
// Define the HTML structure for the control panel with mode selection
const html = `
<div class="cu-stats-wrapper" style="border: 1px solid #a2a9b1; padding: 15px; margin-bottom: 20px; background: #f8f9fa; border-radius: 2px;">
<h3 style="margin-top:0; border-bottom: 1px solid #a2a9b1; padding-bottom: 5px;">CheckUserLogCount.js</h3>
<div style="margin-bottom: 10px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;">
<span>From:</span>
<select id="cu-year-from" style="padding: 3px;">${yearOpts}</select>
<select id="cu-month-from" style="padding: 3px;">${monthOptsFrom}</select>
<span>To:</span>
<select id="cu-year-to" style="padding: 3px;">${yearOpts}</select>
<select id="cu-month-to" style="padding: 3px;">${monthOptsTo}</select>
</div>
<div style="margin-bottom: 10px; display: flex; gap: 15px; font-size: 0.9em; align-items: center;">
<span style="font-weight:bold;">View mode:</span>
<label><input type="radio" name="cu-mode" value="total" checked> Total only</label>
<label><input type="radio" name="cu-mode" value="months"> By Months</label>
<label><input type="radio" name="cu-mode" value="quarters"> By Quarters</label>
<label><input type="radio" name="cu-mode" value="years"> By Years</label>
<button id="cu-stats-run" class="mw-ui-button mw-ui-progressive" style="margin-left: auto;">Run</button>
</div>
<div id="cu-stats-results" style="display:none; margin-top: 15px; border-top: 1px solid #c8ccd1; padding-top: 10px;">
<div id="cu-loader" style="font-weight:bold; margin-bottom: 5px;"></div>
<div id="cu-table-container"></div>
<div id="cu-wikitext-container" style="display:none; margin-top: 20px;">
<label style="font-weight:bold; display:block; margin-bottom:5px;">Report Wikitext:</label>
<textarea id="cu-out" readonly style="width:100%; height:150px; font-family:monospace; font-size:11px; padding:5px; border:1px solid #c8ccd1;"></textarea>
</div>
</div>
</div>`;
// Add the interface to the top of the page content
$('#mw-content-text').prepend(html);
// Handle the "Run" button click event
$('#cu-stats-run').click(function() {
const $btn = $(this);
const params = {
yf: parseInt($('#cu-year-from').val()),
mf: parseInt($('#cu-month-from').val()),
yt: parseInt($('#cu-year-to').val()),
mt: parseInt($('#cu-month-to').val()),
mode: $('input[name="cu-mode"]:checked').val()
};
// Disable the button during processing
$btn.prop('disabled', true).text('Running...');
// Run the audit with collected parameters
runAudit(params).finally(() => {
$btn.prop('disabled', false).text('Run');
});
});
}
// Main logic to fetch and process CheckUser data with timeline support
async function runAudit(cfg) {
$('#cu-stats-results').show();
$('#cu-table-container').empty();
$('#cu-wikitext-container').hide(); // Skrytí wikitextu před novým během
$('#cu-loader').text('Waiting for queue lock...').css("color", "orange").show();
// Request browser lock to prevent concurrent runs across tabs
await navigator.locks.request('local_cu_count_lock', async () => {
$('#cu-loader').text('Lock acquired. Connecting to API...').css("color", "#0056b3");
// Prepare dates and range limits
const START = `${cfg.yf}-${String(cfg.mf).padStart(2, '0')}-01T00:00:00Z`;
const lastDay = new Date(Date.UTC(cfg.yt, cfg.mt, 0)).getUTCDate();
const END = `${cfg.yt}-${String(cfg.mt).padStart(2, '0')}-${String(lastDay).padStart(2, '0')}T23:59:59Z`;
const userStats = {};
let totalActions = 0;
let continueToken = '';
try {
// Phase 1: Get current CheckUsers (even those with no activity)
const currentCUs = [];
const auRes = await robustCall(api, { action: 'query', list: 'allusers', augroup: 'checkuser', aulimit: 'max', formatversion: 2
});
(auRes.query.allusers || []).forEach(u => {
userStats[u.name] = { total: 0, timeline: {} };
currentCUs.push(u.name);
});
// Phase 2: Fetch logs and build the activity timeline
let finished = false;
while (!finished) {
const params = {
action: 'query', list: 'checkuserlog',
culfrom: START, culto: END, culdir: 'newer',
cullimit: 'max', formatversion: 2
};
if (continueToken) params.culcontinue = continueToken;
const res = await robustCall(api, params);
const entries = (res.query && res.query.checkuserlog && res.query.checkuserlog.entries) ? res.query.checkuserlog.entries : [];
entries.forEach(e => {
if (e.checkuser) {
const u = e.checkuser;
const monthKey = e.timestamp.substring(0, 7); // Extract YYYY-MM
if (!userStats[u]) {
userStats[u] = { total: 0, timeline: {} };
}
userStats[u].total++;
userStats[u].timeline[monthKey] = (userStats[u].timeline[monthKey] || 0) + 1;
totalActions++;
}
});
if (res.continue && res.continue.culcontinue) {
continueToken = res.continue.culcontinue;
$('#cu-loader').text(`Processing logs... Found ${totalActions} actions.`);
} else {
finished = true;
}
}
// Phase 3: Get the absolute last action date for each user
const lastActions = {};
const usernames = Object.keys(userStats);
for (let j = 0; j < usernames.length; j++) {
const u = usernames[j];
$('#cu-loader').text(`Checking last activity for ${u} (${j + 1}/${usernames.length})...`);
const lastRes = await robustCall(api, { action: 'query', list: 'checkuserlog',
cullimit: 1, culuser: u, formatversion: 2
});
const lastEntry = (lastRes.query && lastRes.query.checkuserlog && lastRes.query.checkuserlog.entries && lastRes.query.checkuserlog.entries[0]) ? lastRes.query.checkuserlog.entries[0] : null;
lastActions[u] = lastEntry ? lastEntry.timestamp.replace('T', ' ').substring(0, 16) : 'Never';
}
$('#cu-loader').text('Rendering table...').css("color", "#0056b3");
renderTable(userStats, totalActions, lastActions, currentCUs, cfg);
$('#cu-loader').text('Audit complete!').css("color", "green");
} catch (err) {
console.error("CheckUser Stats Error:", err);
const errorMsg = err.statusText || err.message || err;
$('#cu-loader').text(`API Error: ${errorMsg}`).css("color", "#d33").show();
}
});
}
// Create the dynamic results table and Wikitext export
function renderTable(userStats, total, lastActions, currentCUs, cfg) {
// Sort users: highest total first, then alphabetical
const sortedUsers = Object.keys(userStats).map(u => ({ name: u, ...userStats[u] }))
.sort((a, b) => b.total - a.total || a.name.localeCompare(b.name));
// 1. Generate time columns based on the selected range and mode
const timeCols = [];
let startIter = new Date(Date.UTC(cfg.yf, cfg.mf - 1, 1));
const endIter = new Date(Date.UTC(cfg.yt, cfg.mt - 1, 1));
while (startIter <= endIter) {
const k = startIter.toISOString().substring(0, 7); // "YYYY-MM"
if (cfg.mode === 'months') {
timeCols.push({ id: k, label: k });
} else if (cfg.mode === 'quarters') {
const q = Math.floor(startIter.getUTCMonth() / 3) + 1;
const qid = `${startIter.getUTCFullYear()}-Q${q}`;
if (!timeCols.find(c => c.id === qid)) {
timeCols.push({ id: qid, label: qid, months: [] });
}
timeCols.find(c => c.id === qid).months.push(k);
} else if (cfg.mode === 'years') {
const yid = `${startIter.getUTCFullYear()}`;
if (!timeCols.find(c => c.id === yid)) {
timeCols.push({ id: yid, label: yid, months: [] });
}
timeCols.find(c => c.id === yid).months.push(k);
}
startIter.setUTCMonth(startIter.getUTCMonth() + 1);
}
// 2. Build HTML table headers and rows
const headerHtml = timeCols.map(c => `<th>${c.label}</th>`).join('');
const rows = sortedUsers.map(stat => {
const isCurrent = currentCUs.includes(stat.name);
const hasActions = stat.total > 0;
let trStyle = '';
if (isCurrent) trStyle = 'style="background-color: #94e1cc;"';
else if (!hasActions) trStyle = 'style="color: #72777d;"';
// Generate cells for the timeline (HTML and Wikitext)
const timeCells = timeCols.map(c => {
let val = 0;
if (cfg.mode === 'months') {
val = stat.timeline[c.id] || 0;
} else {
// Works for both quarters and years
c.months.forEach(m => val += (stat.timeline[m] || 0));
}
return `<td style="font-size:0.9em; color:#54595d;">${val > 0 ? val : '-'}</td>`;
}).join('');
return `
<tr ${trStyle}>
<td style="text-align:left; white-space: nowrap;">
<a href="${mw.util.getUrl('Special:CheckUserLog', { cuInitiator: stat.name })}">
${mw.html.escape(stat.name)}
</a>
<small style="color: #72777d;">Last: ${lastActions[stat.name]}</small>
</td>
<td><strong>${stat.total}</strong></td>
${timeCells}
</tr>`;
}).join('');
// 3. Prepare Wikitext for reports (cleaned structure)
const dbName = mw.config.get('wgDBname');
let wikitext = `== CheckUser Stats for ${dbName} (${cfg.mf}/${cfg.yf} – ${cfg.mt}/${cfg.yt}) ==\n`;
wikitext += `''Report generated on: ${getReportTimestamp()}<br />\nGenerated with [[testwiki:User:MrJaroslavik/CheckUserLogCount.js|CheckUserLogCount.js]]''\n`;
wikitext += `\n'''Total actions in period: ${total}'''\n\n`;
// Header logic: handle total only vs timeline columns
const colHeader = timeCols.length ? ' !! ' + timeCols.map(c => c.label).join(' !! ') : '';
wikitext += `{| class="wikitable sortable" style="text-align:right;"\n! Initiator !! Total${colHeader}\n`;
sortedUsers.forEach(stat => {
let timelineStr = '';
if (timeCols.length) {
timelineStr = ' || ' + timeCols.map(c => {
let val = 0;
if (cfg.mode === 'months') {
val = stat.timeline[c.id] || 0;
} else {
c.months.forEach(m => val += (stat.timeline[m] || 0));
}
return val;
}).join(' || ');
}
wikitext += `|-\n| style="text-align:left; white-space:nowrap;" | [[User:${stat.name}|${stat.name}]] <small>(Last: ${lastActions[stat.name]})</small> || '''${stat.total}'''${timelineStr}\n`;
});
wikitext += `|}\n`;
// 4. Update the UI container
$('#cu-table-container').html(`
<p><strong>Total actions found: ${total}</strong></p>
<div style="overflow-x: auto;">
<table class="wikitable sortable" style="width:100%; text-align:center;">
<thead>
<tr>
<th style="text-align:left">Initiator</th>
<th>Total</th>
${headerHtml}
</tr>
</thead>
<tbody>${rows}</tbody>
</table>
</div>
`);
$('#cu-out').val(wikitext);
$('#cu-wikitext-container').show();
// Enable sorting
$('table.sortable').tablesorter();
}
// Initialize the UI on page load
setupUI();
});
})();
es2dj74sshdcdh4g7njnkg63sqd8bfk
User:MrJaroslavik/GlobalCheckUserStats.js
2
174967
739199
739099
2026-04-23T17:59:22Z
MrJaroslavik
44012
edit
739199
javascript
text/javascript
// GlobalCheckUserStats.js
// -------------------------------------------------------
// Features:
// - Global Stats: Scans logs across 800+ projects at once.
// - Smart Roles: Identifies Local CheckUsers, Stewards, Staff, and Ombuds - and distinguishes between Former/Current roles.
// - Deep Scan: Bypasses API limits to get full history (limit 500 entries).
// - Stable: Retries 3x on rate limits so no wiki is missed.
// - Error Logs: Lists failed projects (ex. because of 429) at the end of the report.
// - UI: Integrated at [[meta:Special:BlankPage/GlobalCheckUserStats]].
// - Output: sortable Wikitables and detailed rights change logs and CSV file
// - With help of Gemini 3
// -------------------------------------------------------
(function() {
'use strict';
// Run only on Special:BlankPage/GlobalCheckUserStats
const isBlank = mw.config.get('wgCanonicalSpecialPageName') === 'Blankpage';
const isGCUS = mw.config.get('wgTitle').includes('GlobalCheckUserStats');
if (!isBlank || !isGCUS) {
return;
}
// Helper function to pause execution (useful for preventing API limits)
const DELAY_MS = 500;
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
// Makes API calls with automatic retries for "429 Too Many Requests" errors
async function robustCall(api, params) {
let retries = 0;
const maxRetries = 3;
while (retries < maxRetries) {
try {
// Attempt to fetch data from the MediaWiki API
return await api.get(params);
} catch (err) {
// Check if the server is actively rejecting requests due to high load (HTTP 429)
// Note: Optional chaining (?.) is avoided for broad MediaWiki editor compatibility
if (err && err.status === 429) {
retries++;
// Read the 'Retry-After' header provided by the server, or default to a scaling wait time
const waitTime = parseInt(err.xhr && err.xhr.getResponseHeader('Retry-After')) || (30 * retries);
// Notify the user via the UI that the script is pausing (supports both UI container types)
$('#status-msg, #cu-loader').html(
`<span style="color:orange; font-weight:bold;">Server is busy! Pausing for ${waitTime} seconds...</span>`
).show();
// Pause execution for the requested duration before trying again
await sleep(waitTime * 1000);
} else {
// If it is a different error (network failure, 500 Internal Error, etc.), stop and throw
throw err;
}
}
}
// Fail completely if max retries are exceeded
throw new Error("Failed to reach API after multiple attempts due to server limits.");
}
// Returns a standardized UTC timestamp for report headers (YYYY-MM-DD HH:MM)
function getReportTimestamp() {
return new Date().toISOString().replace('T', ' ').substring(0, 16) + ' (UTC)';
}
// Save data here so we don't have to download it twice
let userCache = {};
let historyCache = {};
// This map of all wikis will be filled automatically
let globalWikiMap = {};
// Process various API response formats into a clean array of group names
const extractGroups = function(data) {
if (!data) return [];
var res = [];
if (Array.isArray(data)) {
res = data;
} else if (typeof data === 'object') {
res = Object.values(data);
} else if (typeof data === 'string') {
res = data.split(',').map(function(s) {
return s.trim();
});
}
return res.map(function(g) {
if (typeof g !== 'string') return g;
return g.replace(/\s+/g, '').toLowerCase();
});
};
// List of wikis where CheckUser extension is disabled - https://noc.wikimedia.org/conf/highlight.php?file=dblists/checkuser-disabled.dblist
const disabledCUWikis = [
'aawikibooks', 'abwiktionary', 'advisorywiki', 'akwiktionary', 'angwikiquote',
'angwikisource', 'astwikibooks', 'astwikiquote', 'aswikibooks', 'aswiktionary',
'avwiktionary', 'aywikibooks', 'bhwiktionary', 'biwikibooks', 'biwiktionary',
'bmwikibooks', 'bmwikiquote', 'bmwiktionary', 'bowiktionary', 'chwikibooks',
'chwiktionary', 'cnwikimedia', 'crwikiquote', 'crwiktionary', 'dzwiktionary',
'gawikibooks', 'gnwikibooks', 'gotwikibooks', 'guwikibooks', 'htwikisource',
'huwikinews', 'hzwiki', 'iewikibooks', 'iiwiki', 'internalwiki', 'kjwiki',
'kkwikiquote', 'knwikibooks', 'krwiki', 'krwikiquote', 'kswikibooks',
'kswikiquote', 'kwwikiquote', 'lbwikibooks', 'lbwikiquote', 'lnwikibooks',
'lvwikibooks', 'mhwiktionary', 'mnwikibooks', 'muswiki', 'nahwikibooks',
'nawikibooks', 'nawikiquote', 'ndswikibooks', 'ndswikiquote', 'piwiktionary',
'pswikibooks', 'quwikibooks', 'quwikiquote', 'rmwikibooks', 'rmwiktionary',
'rnwiktionary', 'scwiktionary', 'searchcomwiki', 'snwiktionary', 'spcomwiki',
'swwikibooks', 'thwikinews', 'tkwikibooks', 'tkwikiquote', 'towiktionary',
'transitionteamwiki', 'trwikinews', 'ttwikiquote', 'twwiktionary',
'ugwikibooks', 'ugwikiquote', 'vowikibooks', 'vowikiquote', 'wawikibooks',
'wikimania2005wiki', 'wikimania2006wiki', 'wikimania2007wiki',
'wikimania2009wiki', 'wikimania2015wiki', 'wowikiquote', 'xhwikibooks',
'xhwiktionary', 'yowikibooks', 'yowiktionary', 'zawikibooks', 'zawikiquote',
'zawiktionary', 'zh_min_nanwikibooks', 'zuwikibooks'
];
// Projects known to have local CheckUsers
const localCUWikis = [
'arwiki', 'bnwiki', 'cawiki', 'cswiki', 'dawiki', 'nlwiki', 'enwikibooks',
'enwiki', 'enwikivoyage', 'enwiktionary', 'fiwiki', 'frwiki', 'dewiki',
'hewiki', 'huwiki', 'idwiki', 'itwiki', 'jawiki', 'kowiki', 'fawiki',
'plwiki', 'ptwiki', 'ruwiki', 'srwiki', 'simplewiki', 'slwiki', 'eswiki',
'svwiki', 'thwiki', 'trwiki', 'ukwiki', 'viwiki', 'commonswiki',
'specieswiki', 'metawiki', 'wikidatawiki'
];
// Fetch all available wikis and filter out restricted ones
function loadGlobalWikiMap() {
const api = new mw.Api();
return api.get({
action: 'sitematrix',
format: 'json',
smtype: 'language|special',
smlangprop: 'site',
smsiteprop: 'dbname|url',
formatversion: 2,
origin: '*'
}).then(function(data) {
const matrix = data.sitematrix;
const wikiMap = {};
Object.keys(matrix).forEach(function(key) {
const entry = matrix[key];
if (entry.site && Array.isArray(entry.site)) {
entry.site.forEach(function(site) {
if (site.private || site.fishbowl || disabledCUWikis.indexOf(site.dbname) !== -1) return;
wikiMap[site.dbname] = site.url;
});
}
});
if (matrix.specials && Array.isArray(matrix.specials)) {
matrix.specials.forEach(function(special) {
if (special.private || special.fishbowl || disabledCUWikis.indexOf(special.dbname) !== -1) return;
wikiMap[special.dbname] = special.url;
});
}
return wikiMap;
});
}
// Convert database names to interwiki prefixes for table links
function getInterwikiPrefix(db) {
const specialMap = {
'commonswiki': 'c', 'metawiki': 'm', 'wikidatawiki': 'd',
'wikifunctionswiki': 'f', 'mediawikiwiki': 'mw', 'specieswiki': 'species',
'sourceswiki': 'oldwikisource', 'foundationwiki': 'foundation',
'incubatorwiki': 'incubator', 'outreachwiki': 'outreach',
'betawikiversity': 'betawikiversity', 'be_x_oldwiki': 'be-tarask',
'zh_classicalwiki': 'lzh', 'zh_min_nanwiki': 'nan', 'zh_yuewiki': 'yue'
};
if (specialMap[db]) return specialMap[db];
const name = db.replace(/_/g, '-');
if (name.endsWith('wikisource')) return 's:' + name.slice(0, -10);
if (name.endsWith('wikiversity')) return 'v:' + name.slice(0, -11);
if (name.endsWith('wiktionary')) return 'wikt:' + name.slice(0, -10);
if (name.endsWith('wikivoyage')) return 'voy:' + name.slice(0, -10);
if (name.endsWith('wikibooks')) return 'b:' + name.slice(0, -9);
if (name.endsWith('wikiquote')) return 'q:' + name.slice(0, -9);
if (name.endsWith('wikinews')) return 'n:' + name.slice(0, -8);
if (name.endsWith('wikimedia')) return 'wm' + name.slice(0, -9);
if (name.endsWith('wiki')) return 'w:' + name.slice(0, -4);
return 'w:' + name;
}
// Load required modules and start the script
mw.loader.using(['mediawiki.api', 'mediawiki.ForeignApi']).then(async function() {
// Display initial status message to the user
$('#mw-content-text').html('<strong>GlobalCheckUserStats.js: Loading wiki list...</strong>');
// Download and cache the list of all Wikimedia wikis
globalWikiMap = await loadGlobalWikiMap();
// Prepare the Meta-Wiki API and data containers
const metaApi = new mw.ForeignApi('https://meta.wikimedia.org/w/api.php');
const now = new Date();
// Variables for storing audit results and script state
let results = {};
let emptyWikis = [];
let failedWikis = [];
let scannedWikis = [];
let isRunning = false;
// Current UI filter settings
let currentFilterMode = 'all';
let currentUserFilter = 'all';
// Prepare the year and month selection menus
function setupUI() {
const currentYear = now.getFullYear();
// Generate options for years from 2005 to today
let yearOpts = '';
for (let y = currentYear; y >= 2005; y--) {
yearOpts += `<option value="${y}">${y}</option>`;
}
// Generate options for the month range (January to December)
let monthOptsFrom = '';
let monthOptsTo = '';
for (let m = 1; m <= 12; m++) {
monthOptsFrom += `<option value="${m}" ${m === 1 ? 'selected' : ''}>${m}</option>`;
monthOptsTo += `<option value="${m}" ${m === 12 ? 'selected' : ''}>${m}</option>`;
}
// Set the page title and build the HTML interface
$('#firstHeading').text('GlobalCheckUserStats.js');
$('#mw-content-text').empty().append(`
<div style="border:1px solid #a2a9b1; padding:15px; background:#f8f9fa;">
<h3 style="margin-top:0;">Stats Range</h3>
<div>
From: <select id="y-f" style="width:70px;">${yearOpts}</select>
<select id="m-f" style="width:50px;">${monthOptsFrom}</select>
To: <select id="y-t" style="width:70px;">${yearOpts}</select>
<select id="m-t" style="width:50px;">${monthOptsTo}</select>
</div>
<div style="margin-top:15px; display:flex; align-items:center; gap:20px; font-size:13px;">
<strong>Wiki Filter:</strong>
<label style="cursor:pointer;"><input type="radio" name="wiki-mode" id="btn-all" checked> All</label>
<label style="cursor:pointer;"><input type="radio" name="wiki-mode" id="btn-localcu"> Local CU Wikis</label>
<label style="cursor:pointer;"><input type="radio" name="wiki-mode" id="btn-except"> All except</label>
<label style="cursor:pointer;"><input type="radio" name="wiki-mode" id="btn-only"> Only these</label>
<span id="wiki-help-trigger" style="cursor:help; background:#36c; color:#fff; border-radius:50%; width:18px; height:18px; display:inline-block; text-align:center; font-weight:bold;" title="Show available DB names">?</span>
</div>
<div id="filter-input-container" style="display:none; margin-top:10px;">
<input id="wiki-filter" type="text" style="width:100%;" placeholder="Example: enwiki, dewiki, commonswiki...">
</div>
<div style="margin-top:15px; display:flex; align-items:center; gap:20px; font-size:13px;">
<strong>User Filter:</strong>
<label style="cursor:pointer;"><input type="radio" name="user-mode" id="u-all" checked> All</label>
<label style="cursor:pointer;"><input type="radio" name="user-mode" id="u-local"> Local CheckUsers</label>
<label style="cursor:pointer;"><input type="radio" name="user-mode" id="u-steward"> Steward actions</label>
</div>
<div style="margin-top:15px; display:flex; align-items:center; gap:20px; font-size:13px;">
<strong>View mode (Wikitext):</strong>
<label style="cursor:pointer;"><input type="radio" name="cu-view-mode" value="total"> Total only</label>
<label style="cursor:pointer;"><input type="radio" name="cu-view-mode" value="months" checked> Months</label>
<label style="cursor:pointer;"><input type="radio" name="cu-view-mode" value="quarters"> Q1-Q4</label>
<label style="cursor:pointer;"><input type="radio" name="cu-view-mode" value="years"> Years</label>
</div>
<div id="wiki-list-help" style="display:none; margin-top:10px; padding:10px; background:#fff; border:1px solid #a2a9b1; font-size:11px; max-height:120px; overflow-y:auto; font-family:monospace;">
<strong>Available database names:</strong><br>${Object.keys(globalWikiMap).sort().join(', ')}
</div>
<div style="margin-top:20px;">
<button id="start" class="mw-ui-button mw-ui-progressive">Run</button>
<button id="stop" class="mw-ui-button mw-ui-destructive" disabled>Stop</button>
</div>
<div id="status-msg" style="margin-top:10px; font-weight:bold; color:#0056b3;">Ready.</div>
<div style="margin-top:5px;">
<progress id="bar" value="0" max="${Object.keys(globalWikiMap).length}" style="width:100%"></progress>
</div>
<div id="output-containers" style="display:none; margin-top:10px;">
<div style="margin-bottom:10px;">
<strong>Wikitext:</strong>
<textarea id="out" style="width:100%; height:250px; font-family:monospace; font-size:12px;"></textarea>
</div>
<div>
<strong>CSV:</strong>
<textarea id="csv-out" style="width:100%; height:150px; font-family:monospace; font-size:12px;"></textarea>
</div>
</div>
</div>
`);
// Listen for filter changes and button clicks
$('#btn-all').on('click', () => {
currentFilterMode = 'all';
$('#filter-input-container').hide();
});
$('#btn-localcu').on('click', () => {
currentFilterMode = 'localcu';
$('#filter-input-container').hide();
});
$('#btn-except').on('click', () => {
currentFilterMode = 'exclude';
$('#filter-input-container').show();
$('#wiki-filter').focus();
});
$('#btn-only').on('click', () => {
currentFilterMode = 'include';
$('#filter-input-container').show();
$('#wiki-filter').focus();
});
// User type filters
$('#u-all').on('click', () => {
currentUserFilter = 'all';
});
$('#u-local').on('click', () => {
currentUserFilter = 'local';
});
$('#u-steward').on('click', () => {
currentUserFilter = 'steward';
});
// Help and Execution controls
$('#wiki-help-trigger').on('click', () => $('#wiki-list-help').toggle());
$('#start').on('click', () => {
runAudit(
$('#y-f').val(), $('#m-f').val(),
$('#y-t').val(), $('#m-t').val()
);
});
$('#stop').on('click', () => {
isRunning = false;
});
}
// Get the number of active users for a specific wiki
async function fetchWikiMetrics(db) {
try {
// Find the correct server URL for this database
const baseUrl = globalWikiMap[db];
const api = new mw.ForeignApi(baseUrl + '/w/api.php');
// Request site statistics from the API
const res = await robustCall(api, {
action: 'query',
meta: 'siteinfo',
siprop: 'statistics',
formatversion: 2
});
// Return the count of active users
return {
active: res.query.statistics.activeusers || 0
};
} catch (err) {
// If the wiki is unreachable, return zero as a fallback
return {
active: 0
};
}
}
// Checks if the user held global roles (Steward/Staff/Ombuds)
async function checkGlobalHistory(user, start, end) {
try {
const res = await robustCall(metaApi, {
action: 'query',
list: 'logevents',
letype: 'gblrights',
letitle: 'User:' + user,
lelimit: 'max',
formatversion: 2
});
const logs = res.query.logevents || [];
const auditStart = new Date(start);
const auditEnd = new Date(end);
let status = {
wasSteward: false,
wasStaff: false,
wasOmbuds: false
};
logs.forEach(log => {
const ts = new Date(log.timestamp);
const p = log.params || {};
// Handle both new (named) and old (indexed) API formats
const current = extractGroups(p.newGroups || p.add || p[1] || p["1"]);
const old = extractGroups(p.oldGroups || p.remove || p[2] || p["0"]);
if (ts >= auditStart && ts <= auditEnd) {
if (current.includes('steward') || old.includes('steward')) status.wasSteward = true;
if (current.includes('staff') || old.includes('staff')) status.wasStaff = true;
if (current.some(g => g.includes('ombud')) || old.some(g => g.includes('ombud'))) status.wasOmbuds = true;
}
});
// If no changes during the period, check the state immediately before it started
if (!status.wasSteward && !status.wasStaff && !status.wasOmbuds) {
const priorLogs = logs
.filter(log => new Date(log.timestamp) < auditStart)
.sort((a, b) => new Date(b.timestamp) - new Date(a.timestamp));
if (priorLogs.length > 0) {
const p = priorLogs[0].params || {};
// Crucial: check both newGroups and legacy indexed params
const groupsBefore = extractGroups(p.newGroups || p.add || p[1] || p["1"]);
status.wasSteward = groupsBefore.includes('steward');
status.wasStaff = groupsBefore.includes('staff');
status.wasOmbuds = groupsBefore.some(g => g.includes('ombud'));
}
}
return status;
} catch (err) {
return {
wasSteward: false,
wasStaff: false,
wasOmbuds: false
};
}
}
// Gather user information and fetch their rights logs
async function fetchUserData(user, db, start, end) {
const auditStart = new Date(start);
const auditEnd = new Date(end);
// Get current global groups from Meta-Wiki if not already cached
if (!userCache[user]) {
try {
const globalRes = await robustCall(metaApi, {
action: 'query',
meta: 'globaluserinfo',
guiprop: 'groups',
guiuser: user,
formatversion: 2
});
userCache[user] = globalRes.query.globaluserinfo.groups || [];
} catch (err) {
userCache[user] = [];
}
}
// Canonical variables for current global status
const currentGlobalGroups = userCache[user];
const isGloballySteward = currentGlobalGroups.includes('steward');
const isGloballyStaff = currentGlobalGroups.includes('staff');
const isGloballyOmbuds = currentGlobalGroups.includes('ombuds') || currentGlobalGroups.includes('ombudsman');
// Check for global role history in cache or fetch new data
if (!historyCache[user]) {
historyCache[user] = await checkGlobalHistory(user, start, end);
}
const historyRes = historyCache[user];
let isCurrentLocal = false;
// Check current local CheckUser rights on the target wiki
try {
const wikiUrl = globalWikiMap[db];
const localApi = new mw.ForeignApi(wikiUrl + '/w/api.php');
// Request user group information from the local API
const localRes = await robustCall(localApi, {
action: 'query',
list: 'users',
ususers: user,
usprop: 'groups',
formatversion: 2
});
// Parse response and verify if 'checkuser' group is present
const localUserData = localRes.query.users[0];
const localGroups = (localUserData && localUserData.groups) || [];
isCurrentLocal = localGroups.includes('checkuser');
} catch (err) {
// Default to false if the local rights check fails
isCurrentLocal = false;
}
// Define the target string for CentralAuth rights logs
const target = 'User:' + user + '@' + db;
let logText = '',
isSelfAssign = false,
maxDurationMins = -1,
longestTimeStr = "",
assignCount = 0,
hasLocalRightsInPeriod = false;
// Retrieve all rights change logs from Meta-Wiki
let events = [],
continueToken = null,
finished = false;
while (!finished) {
let params = {
action: 'query',
list: 'logevents',
letype: 'rights',
letitle: target,
ledir: 'older',
lelimit: 'max',
formatversion: 2
};
// Handle API pagination with continue tokens
if (continueToken) Object.assign(params, continueToken);
// Execute the API call and merge the results
const res = await robustCall(metaApi, params);
const batch = res.query.logevents || [];
events = events.concat(batch);
// Check for more results to continue pagination
if (res.continue) {
continueToken = res.continue;
} else {
finished = true;
}
}
// Initialize state variables for log processing
let logEntries = [],
pendingRemoved = null,
lastPairedDate = null,
capturedExpiry = null;
// Iterate through collected events to process rights changes
for (let i = 0; i < events.length; i++) {
const e = events[i];
const p = e.params || {};
// Extract the performing user, stripping import prefixes if present
const actor = e.user && e.user.includes('>') ? e.user.split('>')[1] : e.user;
// Determine CheckUser status before and after the event using various param keys
const hadCU = extractGroups(p.oldgroups || p.oldGroups || p["0"]).includes('checkuser');
const hasCU = extractGroups(p.newgroups || p.newGroups || p["1"]).includes('checkuser');
// Extract expiry metadata if the user already has rights and they are being updated
if (hasCU && hadCU) {
const rawMeta = p.newmetadata || p.newMetadata;
if (rawMeta) {
const metaArray = Array.isArray(rawMeta) ? rawMeta : Object.values(rawMeta);
const cuMeta = metaArray.find(m => m && (m.group === 'checkuser' || m.group === 'check user'));
if (cuMeta && cuMeta.expiry && cuMeta.expiry !== 'infinity') capturedExpiry = new Date(cuMeta.expiry);
}
}
// Identify if CheckUser was added or removed in this event
let cuAdded = (hasCU && !hadCU),
cuRemoved = (hadCU && !hasCU);
if (cuAdded || cuRemoved) {
const eventDate = new Date(e.timestamp),
exactTime = e.timestamp.replace('T', ' ').replace('Z', '');
const isInPeriod = (eventDate >= auditStart && eventDate <= auditEnd);
if (isInPeriod) hasLocalRightsInPeriod = true;
// Process events relevant to the audit timeframe or pairing logic
if (isInPeriod || (eventDate > auditEnd) || (pendingRemoved && cuAdded)) {
let expiryDate = capturedExpiry;
capturedExpiry = null;
// Check for metadata again to ensure current expiry is captured
const rawMeta = p.newmetadata || p.newMetadata;
if (rawMeta) {
const metaArray = Array.isArray(rawMeta) ? rawMeta : Object.values(rawMeta);
const cuMeta = metaArray.find(m => m && (m.group === 'checkuser' || m.group === 'check user'));
if (cuMeta && cuMeta.expiry && cuMeta.expiry !== 'infinity') expiryDate = new Date(cuMeta.expiry);
}
const eventBySelf = (actor === user || !actor);
if (cuAdded) {
const removalInPeriod = pendingRemoved && (pendingRemoved.date >= auditStart && pendingRemoved.date <= auditEnd);
const expiryInPeriod = expiryDate && (expiryDate >= auditStart && expiryDate <= auditEnd);
// Pair adding event with its removal or expiry to calculate duration
if ((isInPeriod || removalInPeriod || expiryInPeriod) && (pendingRemoved || expiryDate)) {
const checkDate = pendingRemoved ? pendingRemoved.date : expiryDate;
const diffMs = Math.abs(checkDate - eventDate);
const totalSecs = Math.floor(diffMs / 1000);
// Intelligent rounding to handle short durations and edge cases
let roundedMins = Math.round(totalSecs / 60);
if (roundedMins === 0 && totalSecs > 0) roundedMins = 1;
// Convert total minutes into days, hours, and remaining minutes
let days = Math.floor(roundedMins / 1440);
let hours = Math.floor((roundedMins % 1440) / 60);
let mins = roundedMins % 60;
// Build a human-readable duration string
let dPart = days > 0 ? days + 'd ' : '';
let hPart = hours > 0 ? hours + 'h ' : '';
let mPart = (mins > 0 || (days === 0 && hours === 0)) ? mins + 'm' : '';
let durStr = totalSecs < 60 ? totalSecs + "s" : (dPart + hPart + mPart).trim();
// Capture the log comment for the ADDED event
let reason = e.comment ? ` <small>''(${e.comment})''</small>` : "";
// Determine if this session was a Steward self-assignment
if (pendingRemoved) {
if (eventBySelf && pendingRemoved.isSelf) isSelfAssign = true;
// Retrieve the removal comment if available
let remReason = pendingRemoved.comment ? ` <small>''(${pendingRemoved.comment})''</small>` : "";
// Calculate discrepancy between manual removal and scheduled expiry
let note = "";
if (expiryDate) {
// Calculate planned duration in seconds and format it
const pDiff = Math.abs(expiryDate - eventDate) / 1000;
let rP = Math.round(pDiff / 60);
let rd = Math.floor(rP / 1440),
rh = Math.floor((rP % 1440) / 60),
rm = rP % 60;
let pD = pDiff < 60 ? Math.round(pDiff) + "s" : `${rd > 0 ? rd + 'd ' : ''}${rh > 0 ? rh + 'h ' : ''}${(rm > 0 || (rd === 0 && rh === 0)) ? rm + 'm' : ''}`.trim();
// Check if rights were removed manually earlier or later than planned
let timeDiff = pendingRemoved.date - expiryDate;
if (timeDiff < -60000) {
note = ` - manual removal before scheduled expiry (set to ${pD})`;
} else if (timeDiff > 600000) {
note = ` - automatic removal not found (set to ${pD})`;
}
}
// Finalize the paired log entry for manual removals
logEntries.unshift(`* ADDED: ${exactTime} by ${actor}${reason} | REMOVED: ${pendingRemoved.time} by ${pendingRemoved.user}${remReason} (Duration: ${durStr}${note})`);
} else if (expiryDate) {
// Handle automatic expiration scenarios
if (eventBySelf) isSelfAssign = true;
logEntries.unshift(`* ADDED: ${exactTime} by ${actor}${reason} | EXPIRED: ${expiryDate.toISOString().replace('T', ' ').substring(0, 19)} <small>''(Automatic)''</small> (Duration: ${durStr})`);
}
// Reset pending state and update audit metrics
pendingRemoved = null;
if (totalSecs / 60 > maxDurationMins) {
maxDurationMins = totalSecs / 60;
longestTimeStr = durStr.trim();
}
assignCount++;
lastPairedDate = eventDate;
} else if (isInPeriod && !pendingRemoved && !expiryDate) {
// Handle cases where rights are still active or removal log is missing
if (!(lastPairedDate && Math.abs(lastPairedDate - eventDate) < 86400000)) {
logEntries.unshift(`* ADDED: ${exactTime} by ${actor} | REMOVED: (Active/Not removed)`);
lastPairedDate = eventDate;
}
pendingRemoved = null;
}
} else if (cuRemoved) {
// Record standalone removal events for future pairing
if (pendingRemoved && pendingRemoved.date >= auditStart && pendingRemoved.date <= auditEnd) {
logEntries.unshift(`* REMOVED: ${pendingRemoved.time} by ${pendingRemoved.user}`);
}
// Store removal data to be paired with the next ADDED event
pendingRemoved = {
time: exactTime,
date: eventDate,
user: actor,
isSelf: eventBySelf,
comment: e.comment
};
}
}
}
}
// Verify if the user held rights at the start of the period by checking prior logs
if (!hasLocalRightsInPeriod && events.length > 0) {
const firstBefore = events.find(ev => new Date(ev.timestamp) < auditStart);
if (firstBefore) {
const groupsBefore = extractGroups(firstBefore.params.newgroups || firstBefore.params.add || firstBefore.params[1] || firstBefore.params["1"]);
if (groupsBefore.includes('checkuser')) hasLocalRightsInPeriod = true;
}
// If still not found, check the oldest available log entry for the initial state
if (!hasLocalRightsInPeriod) {
const chronologicallyFirst = events[events.length - 1];
const cp = chronologicallyFirst.params || {};
const oldGroups = extractGroups(cp.oldgroups || cp.oldGroups || cp.remove || cp[0] || cp["0"]);
if (oldGroups.includes('checkuser')) hasLocalRightsInPeriod = true;
}
}
// Finalize the log text assembly
if (pendingRemoved && pendingRemoved.date >= auditStart && pendingRemoved.date <= auditEnd) {
logEntries.unshift(`* REMOVED: ${pendingRemoved.time} by ${pendingRemoved.user}`);
}
if (logEntries.length) logText = '\n' + logEntries.join('\n');
// Logic for determining user roles and categories
let roles = [];
const isStewardInPeriod = isGloballySteward || historyRes.wasSteward;
const isTemporaryMission = (longestTimeStr && isSelfAssign && isStewardInPeriod);
// Process Global Staff and Ombudsman roles
if (isGloballyStaff) roles.push("Current Staff");
else if (historyRes.wasStaff) roles.push("Former Staff");
if (isGloballyOmbuds) roles.push("Current Ombudsman");
else if (historyRes.wasOmbuds) roles.push("Former Ombudsman");
// Steward logic: Distinguish between temporary actions and permanent roles
if (isTemporaryMission) {
const countLabel = assignCount > 1 ? `${assignCount}x, longest ` : "";
roles.push(`Steward action (Self-assign: ${countLabel}${longestTimeStr})`);
} else {
if (isGloballySteward) roles.push("Current Steward");
else if (historyRes.wasSteward) roles.push("Former Steward");
}
// Process Local CheckUser roles
if (isCurrentLocal) roles.push("Current Local CheckUser");
if (hasLocalRightsInPeriod && !isCurrentLocal && !isTemporaryMission) {
roles.push("Former Local CheckUser");
}
// Consolidate unique roles into a formatted label
let uniqueRoles = [...new Set(roles)];
let roleLabel = uniqueRoles.length > 0 ? uniqueRoles.join(' & ') : "Unknown role";
// Return final metadata object for project reporting
return {
role: roleLabel,
log: logText,
hasLocalRightsInPeriod: hasLocalRightsInPeriod,
isStewardAction: isTemporaryMission,
selfAssignCount: assignCount,
maxDurationMins: maxDurationMins
};
}
// Main execution loop with Cross-Tab concurrency protection
async function runAudit(yf, mf, yt, mt) {
$('#status-msg').text('Waiting for other tabs to finish...').css("color", "orange");
$('#start').prop('disabled', true);
// Utilize Web Locks API to prevent concurrent API requests from multiple tabs
await navigator.locks.request('global_cu_audit', async () => {
isRunning = true;
// Clear cache and result containers for a fresh scan
userCache = {};
historyCache = {};
results = {};
emptyWikis = [];
failedWikis = [];
scannedWikis = [];
$('#status-msg').text('Lock acquired. Initializing...').css("color", "#0056b3");
$('#stop').prop('disabled', false);
// Parse wiki filter input from the UI
const filterText = $('#wiki-filter').val().trim().toLowerCase();
const filterList = filterText ? filterText.split(',').map(s => s.trim()).filter(s => s !== "") : [];
// Determine the set of wikis to process based on user filters
const allAvailableWikis = Object.keys(globalWikiMap);
let wikisToScan = allAvailableWikis;
// Apply inclusion or exclusion logic based on current UI selection
if (currentFilterMode === 'include') {
wikisToScan = allAvailableWikis.filter(w => filterList.includes(w));
} else if (currentFilterMode === 'exclude') {
wikisToScan = allAvailableWikis.filter(w => !filterList.includes(w));
} else if (currentFilterMode === 'localcu') {
wikisToScan = allAvailableWikis.filter(w => localCUWikis.indexOf(w) !== -1);
}
// Validate that there are wikis to scan before proceeding
if (wikisToScan.length === 0) {
alert("No wikis selected for audit!");
isRunning = false;
$('#start').prop('disabled', false);
return;
}
// Initialize the progress bar UI
$('#bar').attr('max', wikisToScan.length).val(0);
// Define the standardized ISO timestamps for the MediaWiki API
const START = `${yf}-${String(mf).padStart(2, '0')}-01T00:00:00Z`;
const END = `${yt}-${String(mt).padStart(2, '0')}-${new Date(Date.UTC(yt, mt, 0)).getUTCDate().toString().padStart(2, '0')}T23:59:59Z`;
// Generate the chronological month columns for the report table
const monthCols = [];
let currY = parseInt(yf),
currM = parseInt(mf),
endY = parseInt(yt),
endM = parseInt(mt);
while (currY < endY || (currY === endY && currM <= endM)) {
monthCols.push({
key: `${currY}-${String(currM).padStart(2, '0')}`,
label: `${["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"][currM - 1]} ${currY}`
});
currM++;
if (currM > 12) {
currM = 1;
currY++;
}
}
// Iterate through each wiki project to collect CheckUser activity
for (let i = 0; i < wikisToScan.length; i++) {
if (!isRunning) break; // Allow for manual stop
const db = wikisToScan[i];
scannedWikis.push(db);
$('#status-msg').text(`Scanning ${db} (${i + 1}/${wikisToScan.length})...`);
let successLocal = false,
continueToken = null;
// Phase 1: Retrieve CheckUser logs and aggregate monthly stats
while (!successLocal && isRunning) {
try {
const api = new mw.ForeignApi(globalWikiMap[db] + '/w/api.php');
let params = {
action: 'query',
list: 'checkuserlog',
culfrom: START,
culto: END,
culdir: 'newer',
cullimit: 'max',
formatversion: 2
};
if (continueToken) Object.assign(params, continueToken);
let res = await robustCall(api, params);
const entries = (res.query && res.query.checkuserlog && res.query.checkuserlog.entries) ? res.query.checkuserlog.entries : [];
if (entries.length) {
if (!results[db]) results[db] = {};
entries.forEach(e => {
const user = e.checkuser;
if (!results[db][user]) results[db][user] = {
total: 0,
months: {}
};
const mKey = e.timestamp.slice(0, 7);
results[db][user].total++;
results[db][user].months[mKey] = (results[db][user].months[mKey] || 0) + 1;
});
}
// Handle API pagination
if (res.continue && isRunning) {
continueToken = res.continue;
} else {
successLocal = true;
}
} catch (err) {
failedWikis.push(db);
successLocal = true;
}
}
// Phase 2: Capture current CheckUsers (to include users with 0 actions)
if (isRunning && !failedWikis.includes(db)) {
try {
const auApi = new mw.ForeignApi(globalWikiMap[db] + '/w/api.php');
const auRes = await robustCall(auApi, {
action: 'query',
list: 'allusers',
augroup: 'checkuser',
aulimit: 'max',
formatversion: 2
});
const currentCUs = auRes.query.allusers || [];
if (currentCUs.length > 0) {
if (!results[db]) results[db] = {};
currentCUs.forEach(u => {
if (!results[db][u.name]) results[db][u.name] = {
total: 0,
months: {}
};
});
}
} catch (e) {
/* Fallback for local API failures */
}
}
// Record wikis with no CheckUser presence found
if (!results[db] && !failedWikis.includes(db)) {
emptyWikis.push(db);
}
// Update UI progress
$('#bar').val(i + 1);
await sleep(DELAY_MS);
}
// Finalize results and compile the audit report
$('#status-msg').text(`Generating report...`);
// Calculate global activity totals for each user across all wikis
let userGlobalTotals = {};
Object.keys(results).forEach(db => {
Object.keys(results[db]).forEach(user => {
userGlobalTotals[user] = (userGlobalTotals[user] || 0) + results[db][user].total;
});
});
// Setup report timestamps
const reportDate = new Date().toISOString().split('T')[0];
const viewMode = $('input[name="cu-view-mode"]:checked').val();
const timeCols = [];
if (viewMode === 'months') {
monthCols.forEach(m => timeCols.push({
id: m.key,
label: m.label
}));
} else if (viewMode !== 'total') {
monthCols.forEach(m => {
let label;
if (viewMode === 'quarters') {
const q = Math.floor((parseInt(m.key.split('-')[1]) - 1) / 3) + 1;
label = `${m.key.split('-')[0]}-Q${q}`;
} else {
label = m.key.split('-')[0]; // Years
}
let col = timeCols.find(c => c.label === label);
if (!col) {
col = {
label: label,
months: []
};
timeCols.push(col);
}
col.months.push(m.key);
});
}
// Initialize Wikitext output with header information
let wikitext = `== Global CheckUser Stats (${mf}/${yf} - ${mt}/${yt}) ==\n`;
wikitext += `''Report generated on: ${getReportTimestamp()}<br />\nGenerated with [[testwiki:User:MrJaroslavik/GlobalCheckUserStats.js|GlobalCheckUserStats.js]]''\n`;
// Initialize CSV output with headers
let csvData = "Project,User,Role,SelfAssignCount,MaxDuration_mins,TotalActions\n";
// Document applied filters in the wikitext report
let filterSummary = [];
// Only add wiki filter if the list is not empty, or if localcu is selected
if (currentFilterMode === 'localcu') {
filterSummary.push(`Wikis with local CheckUsers`);
} else if (filterList.length > 0) {
if (currentFilterMode === 'include') {
filterSummary.push(`Only these wikis: ${filterList.join(', ')}`);
} else if (currentFilterMode === 'exclude') {
filterSummary.push(`All except wikis: ${filterList.join(', ')}`);
}
}
if (currentUserFilter === 'local') filterSummary.push(`Only users: Local CheckUsers`);
else if (currentUserFilter === 'steward') filterSummary.push(`Only users: Steward actions`);
if (filterSummary.length > 0) {
wikitext += `<br />\n''Used filters: ${filterSummary.join(' | ')}''\n`;
}
wikitext += `\n`;
// Start building the main results table
let rightsLogText = `\n== Rights Log (In Period) ==\n`;
const per1kExpl = "Calculated as: (Total Actions in selected period / Current Active Users) * 1,000";
wikitext += `{| class="wikitable sortable" style="font-size:90%; text-align:right;"\n! Wiki / User !! Category !! '''Total''' !! per 1k users<ref>${per1kExpl}</ref> ${timeCols.map(c => `!! ${c.label}`).join(' ')}\n`;
// Process each database in alphabetical order
const sortedDBs = Object.keys(results).sort();
for (const db of sortedDBs) {
const metrics = await fetchWikiMetrics(db);
const activeFormatted = metrics.active > 0 ? metrics.active.toLocaleString('en-US') : 'Unknown';
const interwiki = getInterwikiPrefix(db);
// Build wiki-specific header row
let headerRow = `|-\n! colspan="${4 + timeCols.length}" style="background:#eaecf0; text-align:center;" | [[${interwiki}:|${db}]] <small style="font-weight:normal; color:#54595d;">(Active Users as of ${reportDate}: ${activeFormatted})</small> — [[${interwiki}:Special:CheckUserLog|CheckUserLog]] · [[${interwiki}:Special:ListUsers/checkuser|ListUsers/checkuser]]\n`;
let projectRows = [],
wikiTotal = 0,
wikiMonthlyStats = {};
monthCols.forEach(col => wikiMonthlyStats[col.key] = 0);
let projectUsers = Object.keys(results[db] || {}).sort();
for (const user of projectUsers) {
const userData = results[db][user];
const meta = await fetchUserData(user, db, START, END);
// Filter logic: Only show users active in period or holding rights
if (userData.total === 0 && !meta.hasLocalRightsInPeriod) continue;
const isStewardAction = meta.isStewardAction;
const isLocalCU = meta.role.includes("Local CheckUser");
// Apply UI role filters
if (currentUserFilter === 'local' && !isLocalCU) continue;
if (currentUserFilter === 'steward' && !isStewardAction) continue;
// Update totals
wikiTotal += userData.total;
monthCols.forEach(col => wikiMonthlyStats[col.key] += (userData.months[col.key] || 0));
// Calculate per 1k active users metric
let per1k = metrics.active > 0 ? ((userData.total / metrics.active) * 1000).toFixed(1) : "0.0";
// Construct wikitext row with dynamic timeline
let row = `|-\n| style="text-align:left;" | ${user}@${db} || <small>${meta.role}</small> || '''${userData.total}''' || ${per1k}`;
timeCols.forEach(col => {
let val = 0;
if (viewMode === 'months') val = userData.months[col.id] || 0;
else col.months.forEach(m => val += (userData.months[m] || 0));
row += ` || ${val}`;
});
projectRows.push({
html: row + "\n",
log: meta.log ? `'''${user}@${db}''':${meta.log}\n\n` : ""
});
// Construct CSV row
let baseRole = meta.role.split(' (')[0];
let sAssignCount = meta.isStewardAction ? meta.selfAssignCount : "";
let sMaxMins = meta.isStewardAction ? Math.round(meta.maxDurationMins) : "";
csvData += `${db},${user},"${baseRole}",${sAssignCount},${sMaxMins},${userData.total}\n`;
}
// Skip project if no users pass the filters
if (projectRows.length === 0) {
if (!emptyWikis.includes(db)) emptyWikis.push(db);
continue;
}
// Construct project summary row
let wikiPer1k = metrics.active > 0 ? ((wikiTotal / metrics.active) * 1000).toFixed(1) : "0.0";
let totalRow = `|- style="background:#f8f9fa; font-weight:bold;"\n| style="text-align:left;" | TOTAL ${db} || — || ${wikiTotal} || ${wikiPer1k}`;
timeCols.forEach(col => {
let val = 0;
if (viewMode === 'months') val = wikiMonthlyStats[col.id] || 0;
else col.months.forEach(m => val += (wikiMonthlyStats[m] || 0));
totalRow += ` || ${val}`;
});
wikitext += headerRow + totalRow + "\n";
projectRows.forEach(r => {
wikitext += r.html;
if (r.log) rightsLogText += r.log;
});
}
// Close table and append metadata sections
wikitext += `|}\n\n== Projects with 0 actions ==\n<div style="font-size:85%; color:#54595d;">${emptyWikis.sort().join(', ')}</div>\n`;
if (failedWikis.length > 0) {
wikitext += `\n== API Errors / Skipped Projects ==\n<div style="font-size:85%; color:#d33;">${failedWikis.sort().join(', ')}</div>\n`;
}
wikitext += rightsLogText + `\n\n<references />\n`;
// Output results to UI and finalize state
$('#out').val(wikitext);
$('#csv-out').val(csvData);
$('#output-containers').show();
$('#status-msg').text(`Done.`).css("color", "green");
$('#start').prop('disabled', false);
$('#stop').prop('disabled', true);
});
}
// Initialize the UI and finish script setup
setupUI();
});
})();
3i3km7ik5x6m64evmx3gboce4ipfmav
User:MrJaroslavik/GlobalCheckUserList.js
2
174968
739176
739132
2026-04-23T12:44:38Z
MrJaroslavik
44012
e
739176
javascript
text/javascript
// GlobalCheckUserList.js
// -------------------------------------------------------
// Features:
// - Scans current CheckUsers across 800+ projects.
// - Bypasses API limits for user lists and history logs.
// - Checks Meta (steward) and Local (bureaucrat) logs for the grant date.
// - Single Table: Unified wikitext output in one sortable table.
// - Navigation: Nicknames link to local logs; headers link to project, list, and CU log.
// - Compatibility: No optional chaining (?.) for MediaWiki editor support.
// - Created with help of Gemini 3.
// -------------------------------------------------------
(function() {
'use strict';
// Run only on Special:BlankPage/GlobalCheckUserList
const isBlankPage = mw.config.get('wgCanonicalSpecialPageName') === 'Blankpage';
const isOurScript = mw.config.get('wgTitle').includes('GlobalCheckUserList');
if (!isBlankPage || !isOurScript) return;
let globalWikiMap = {};
// // List of wikis where CheckUser extension is disabled - https://noc.wikimedia.org/conf/highlight.php?file=dblists/checkuser-disabled.dblist
const disabledCUWikis = [
'aawikibooks', 'abwiktionary', 'advisorywiki', 'akwiktionary', 'angwikiquote',
'angwikisource', 'astwikibooks', 'astwikiquote', 'aswikibooks', 'aswiktionary',
'avwiktionary', 'aywikibooks', 'bhwiktionary', 'biwikibooks', 'biwiktionary',
'bmwikibooks', 'bmwikiquote', 'bmwiktionary', 'bowiktionary', 'chwikibooks',
'chwiktionary', 'cnwikimedia', 'crwikiquote', 'crwiktionary', 'dzwiktionary',
'gawikibooks', 'gnwikibooks', 'gotwikibooks', 'guwikibooks', 'htwikisource',
'huwikinews', 'hzwiki', 'iewikibooks', 'iiwiki', 'internalwiki', 'kjwiki',
'kkwikiquote', 'knwikibooks', 'krwiki', 'krwikiquote', 'kswikibooks',
'kswikiquote', 'kwwikiquote', 'lbwikibooks', 'lbwikiquote', 'lnwikibooks',
'lvwikibooks', 'mhwiktionary', 'mnwikibooks', 'muswiki', 'nahwikibooks',
'nawikibooks', 'nawikiquote', 'ndswikibooks', 'ndswikiquote', 'piwiktionary',
'pswikibooks', 'quwikibooks', 'quwikiquote', 'rmwikibooks', 'rmwiktionary',
'rnwiktionary', 'scwiktionary', 'searchcomwiki', 'snwiktionary', 'spcomwiki',
'swwikibooks', 'thwikinews', 'tkwikibooks', 'tkwikiquote', 'towiktionary',
'transitionteamwiki', 'trwikinews', 'ttwikiquote', 'twwiktionary',
'ugwikibooks', 'ugwikiquote', 'vowikibooks', 'vowikiquote', 'wawikibooks',
'wikimania2005wiki', 'wikimania2006wiki', 'wikimania2007wiki',
'wikimania2009wiki', 'wikimania2015wiki', 'wowikiquote', 'xhwikibooks',
'xhwiktionary', 'yowikibooks', 'yowiktionary', 'zawikibooks', 'zawikiquote',
'zawiktionary', 'zh_min_nanwikibooks', 'zuwikibooks'
];
// Projects known to have local CheckUsers - https://meta.wikimedia.org/wiki/CheckUser_policy/Users_with_CheckUser_access
const localCUWikis = [
'arwiki', 'bnwiki', 'cawiki', 'cswiki', 'dawiki', 'nlwiki', 'enwikibooks',
'enwiki', 'enwikivoyage', 'enwiktionary', 'fiwiki', 'frwiki', 'dewiki',
'hewiki', 'huwiki', 'idwiki', 'itwiki', 'jawiki', 'kowiki', 'fawiki',
'plwiki', 'ptwiki', 'ruwiki', 'srwiki', 'simplewiki', 'slwiki', 'eswiki',
'svwiki', 'thwiki', 'trwiki', 'ukwiki', 'viwiki', 'commonswiki',
'specieswiki', 'metawiki', 'wikidatawiki'
];
// Manual overrides for missing grant dates
// Format: "Username@dbname": "YYYY-MM-DD"
const customGrantDates = {
"RiazACU@bnwiki": "2022-05-13",
"KnudW@dawiki": "2017-03-23",
"Dbeef@enwiki": "2025-03-07",
"MarcGarver@enwikibooks": "2012-03-26",
"Jake Park@eswiki": "2021-07-03",
"Nohirara@idwiki": "2016-06-03",
"Superspritz@itwiki": "2012-12-06",
"Uncitoyen@trwiki": "2020-03-31"
};
// Fetch all available wikis and filter out restricted ones
function loadGlobalWikiMap() {
const api = new mw.Api();
return api.get({
action: 'sitematrix',
format: 'json',
smtype: 'language|special',
smlangprop: 'site',
smsiteprop: 'dbname|url',
formatversion: 2,
origin: '*'
}).then(function(data) {
const matrix = data.sitematrix;
const wikiMap = {};
Object.keys(matrix).forEach(key => {
const entry = matrix[key];
if (entry.site && Array.isArray(entry.site)) {
entry.site.forEach(site => {
if (site.private || site.fishbowl || disabledCUWikis.indexOf(site.dbname) !== -1) return;
wikiMap[site.dbname] = site.url;
});
}
});
if (matrix.specials && Array.isArray(matrix.specials)) {
matrix.specials.forEach(special => {
if (special.private || special.fishbowl || disabledCUWikis.indexOf(special.dbname) !== -1) return;
wikiMap[special.dbname] = special.url;
});
}
return wikiMap;
});
}
const DELAY_MS = 500;
const sleep = ms => new Promise(r => setTimeout(r, ms));
// Convert database names to interwiki prefixes for table links
function getInterwikiPrefix(db) {
const specialMap = {
'commonswiki': 'c',
'metawiki': 'm',
'wikidatawiki': 'd',
'wikifunctionswiki': 'f',
'mediawikiwiki': 'mw',
'specieswiki': 'species',
'sourceswiki': 'oldwikisource',
'foundationwiki': 'foundation',
'incubatorwiki': 'incubator',
'outreachwiki': 'outreach',
'betawikiversity': 'betawikiversity',
'be_x_oldwiki': 'be-tarask',
'zh_classicalwiki': 'lzh',
'zh_min_nanwiki': 'nan',
'zh_yuewiki': 'yue'
};
if (specialMap[db]) return specialMap[db];
const name = db.replace(/_/g, '-');
if (name.endsWith('wikisource')) return 's:' + name.slice(0, -10);
if (name.endsWith('wikiversity')) return 'v:' + name.slice(0, -11);
if (name.endsWith('wiktionary')) return 'wikt:' + name.slice(0, -10);
if (name.endsWith('wikivoyage')) return 'voy:' + name.slice(0, -10);
if (name.endsWith('wikibooks')) return 'b:' + name.slice(0, -9);
if (name.endsWith('wikiquote')) return 'q:' + name.slice(0, -9);
if (name.endsWith('wikinews')) return 'n:' + name.slice(0, -8);
if (name.endsWith('wikimedia')) return 'wm' + name.slice(0, -9);
if (name.endsWith('wiki')) return 'w:' + name.slice(0, -4);
return 'w:' + name;
}
// Process various API response formats into a clean array of group names
const extractGroups = (data) => {
if (!data) return [];
var res = [];
if (Array.isArray(data)) {
res = data;
} else if (typeof data === 'object') {
res = Object.values(data);
} else if (typeof data === 'string') {
res = data.split(',').map(function(s) {
return s.trim();
});
}
return res.map(function(g) {
if (typeof g !== 'string') return g;
return g.replace(/\s+/g, '').toLowerCase();
});
};
// Make an API call with automatic retries for 429 Busy errors
async function robustCall(api, params) {
let retries = 0;
const maxRetries = 3;
while (retries < maxRetries) {
try {
return await api.get(params);
} catch (err) {
if (err?.status === 429) {
retries++;
const waitTime = parseInt(err.xhr?.getResponseHeader('Retry-After')) || (30 * retries);
$('#status-msg').html(
`<span style="color:orange; font-weight:bold;">Server busy! Waiting ${waitTime}s...</span>`
);
await sleep(waitTime * 1000);
} else {
throw err;
}
}
}
throw new Error("API unreachable after multiple retries");
}
mw.loader.using(['mediawiki.api', 'mediawiki.ForeignApi']).then(async function() {
$('#mw-content-text').html('<strong>GlobalCheckUserList.js: Mapping wikis...</strong>');
globalWikiMap = await loadGlobalWikiMap();
const metaApi = new mw.ForeignApi('https://meta.wikimedia.org/w/api.php');
let isRunning = false;
let currentFilterMode = 'all';
function setupUI() {
$('#firstHeading').text('GlobalCheckUserList');
$('#mw-content-text').empty().append(`
<div style="border:1px solid #a2a9b1; padding:15px; background:#f8f9fa;">
<p>Audits current CheckUsers across Wikimedia projects. Reports are grouped into one single table.</p>
<div style="margin-bottom:10px; display:flex; align-items:center; gap:20px; font-size:13px;">
<strong>Wiki Filter:</strong>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-all" checked> All</label>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-localcu"> Local CU Wikis</label>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-only"> Only these</label>
<span id="wiki-help-trigger" style="cursor:help; background:#36c; color:#fff; border-radius:50%; width:18px; height:18px; display:inline-block; text-align:center; font-weight:bold;" title="Show available DB names">?</span>
</div>
<div id="filter-input-container" style="display:none; margin-bottom:15px;">
<input id="wiki-filter" type="text" style="width:100%;" placeholder="dbname1, dbname2...">
</div>
<div id="wiki-list-help" style="display:none; margin-bottom:10px; padding:10px; background:#fff; border:1px solid #a2a9b1; font-size:11px; max-height:120px; overflow-y:auto; font-family:monospace;">
<strong>Available database names:</strong><br>${Object.keys(globalWikiMap).sort().join(', ')}
</div>
<div style="margin-top:20px;">
<button id="start" class="mw-ui-button mw-ui-progressive">Run Audit</button>
<button id="stop" class="mw-ui-button mw-ui-destructive" disabled>Stop</button>
</div>
<div id="status-msg" style="margin-top:10px; font-weight:bold; color:#0056b3;">Ready.</div>
<div style="margin-top:5px;">
<progress id="bar" value="0" max="${Object.keys(globalWikiMap).length}" style="width:100%"></progress>
</div>
<div id="output-container" style="display:none; margin-top:15px;">
<strong>Wikitext Report:</strong>
<textarea id="out" style="width:100%; height:450px; font-family:monospace; font-size:11px; padding:5px; border:1px solid #c8ccd1;"></textarea>
</div>
</div>
`);
$('#btn-all').click(function() {
currentFilterMode = 'all';
$('#filter-input-container').hide();
});
$('#btn-localcu').click(function() {
currentFilterMode = 'localcu';
$('#filter-input-container').hide();
});
$('#btn-only').click(function() {
currentFilterMode = 'include';
$('#filter-input-container').show().focus();
});
$('#wiki-help-trigger').click(function() {
$('#wiki-list-help').toggle();
});
$('#start').click(function() {
runAudit();
});
$('#stop').click(function() {
isRunning = false;
});
}
async function findGrantDate(user, db) {
// Check manual list first
const key = user + "@" + db;
if (customGrantDates[key]) return customGrantDates[key];
// Search Meta-Wiki for steward actions (User:Name@dbname)
// We use User:Name for Meta itself, and User:Name@dbname for other wikis
const title = (db === 'metawiki') ? 'User:' + user : 'User:' + user + '@' + db;
let mPars = {
action: 'query',
list: 'logevents',
letype: 'rights',
letitle: title,
ledir: 'newer',
lelimit: 'max',
formatversion: 2
};
let resM = await robustCall(metaApi, mPars);
let logsM = (resM.query && resM.query.logevents) || [];
for (let ev of logsM) {
let p = ev.params || {};
let nG = extractGroups(p.newgroups || p.add || p[1] || p["1"]);
let oG = extractGroups(p.oldgroups || p.remove || p[0] || p["0"]);
if (nG.indexOf('checkuser') !== -1 && oG.indexOf('checkuser') === -1) {
return ev.timestamp.substring(0, 10);
}
}
return "Unknown";
}
async function runAudit() {
isRunning = true;
let wt = "";
const adminTypes = [
'block', 'delete', 'protect', 'rights', 'merge', 'abusefilter',
'contentmodel', 'import', 'managetags', 'massmessage',
'checkuser-temporary-account', 'ipinfo', 'pagelang',
'renameuser', 'stable', 'gblblock', 'abusefilter-protected-vars'
];
const cuInPublicTypes = ['abusefilterprivatedetails'];
$('#start').prop('disabled', true);
$('#stop').prop('disabled', false);
$('#out').val('').show();
$('#output-container').show();
$('#status-msg').text('Waiting for queue lock...').css("color", "orange");
// Request browser lock to prevent concurrent runs
await navigator.locks.request('global_cu_list_lock', async () => {
const ts = new Date().toISOString().replace('T', ' ').substring(0, 16) + ' (UTC)';
wt = "== Global CheckUser List ==\n";
wt += "''Report generated on: " + ts + "<br />\n";
wt += "Generated with [[testwiki:User:MrJaroslavik/GlobalCheckUserList.js|GlobalCheckUserList.js]]''\n";
const filterText = $('#wiki-filter').val().trim().toLowerCase();
const filterList = filterText ? filterText.split(',').map(function(s) {
return s.trim();
}).filter(function(s) {
return s !== "";
}) : [];
if (currentFilterMode === 'localcu') {
wt += "<br />''Filter applied: Wikis with local CheckUser communities''\n";
} else if (currentFilterMode === 'include' && filterList.length > 0) {
wt += "<br />''Filter applied: Only these wikis (" + filterList.join(', ') + ")''\n";
}
wt += "\n";
wt += '{| class="wikitable sortable" style="font-size:90%; width:100%;"\n' +
'! User !! CU Since !! Duration !! Last CU Action<ref>Logs: checkuserlog, checkuser-temporary-account, abusefilterprivatedetails</ref> !! ' +
'Last Admin Action<ref>Logs: ' + adminTypes.join(', ') + '</ref> !! ' +
'Last OS Action<ref>Logs: suppress</ref> !! ' +
'Last Logged Action<ref>Logs: all public logged actions</ref> !! Last Edit\n';
const allWikis = Object.keys(globalWikiMap);
let wikisToScan;
if (currentFilterMode === 'include' && filterList.length > 0) {
wikisToScan = allWikis.filter(function(w) {
return filterList.indexOf(w) !== -1;
});
} else if (currentFilterMode === 'localcu') {
wikisToScan = allWikis.filter(function(w) {
return localCUWikis.indexOf(w) !== -1;
});
} else {
wikisToScan = allWikis;
}
$('#bar').attr('max', wikisToScan.length).val(0);
for (let i = 0; i < wikisToScan.length; i++) {
if (!isRunning) break;
const db = wikisToScan[i];
$('#status-msg').text('Auditing ' + db + ' (' + (i + 1) + '/' + wikisToScan.length + ')...').css("color", "#0056b3");
try {
const wikiUrl = globalWikiMap[db];
const localApi = new mw.ForeignApi(wikiUrl + '/w/api.php');
// Find all users currently in the checkuser group
let users = [],
auDone = false,
auCont = null;
while (!auDone && isRunning) {
let auPars = {
action: 'query',
list: 'allusers',
augroup: 'checkuser',
auprop: 'groups',
aulimit: 'max',
formatversion: 2
};
if (auCont) Object.assign(auPars, auCont);
let res = await robustCall(localApi, auPars);
users = users.concat(res.query.allusers || []);
if (res.continue) auCont = res.continue;
else auDone = true;
}
if (users.length > 0) {
const iw = getInterwikiPrefix(db);
wt += '|-\n! colspan="8" style="background:#eaecf0; text-align:center;" | ' +
'[[' + iw + ':|' + db + ']] — [[' + iw + ':Special:ListUsers/checkuser|(list)]] — [[' + iw + ':Special:CheckUserLog|(log)]]\n';
for (const u of users) {
const username = u.name;
const sinceDate = await findGrantDate(username, db, localApi);
// Calculate how many days user has held rights
let days = "-";
if (sinceDate && sinceDate !== "Unknown") {
const cleanDate = sinceDate.substring(0, 10);
const diff = new Date() - new Date(cleanDate);
days = Math.floor(diff / 86400000) + "d";
}
// Check private CheckUser log
const cuLog = await robustCall(localApi, {
action: 'query',
list: 'checkuserlog',
culuser: username,
cullimit: 1,
formatversion: 2
});
let lastCU = (cuLog.query && cuLog.query.checkuserlog && cuLog.query.checkuserlog.entries && cuLog.query.checkuserlog.entries[0]) ?
cuLog.query.checkuserlog.entries[0].timestamp.substring(0, 10) : "Never";
// Fetch public log history
const allUserLogsReq = await robustCall(localApi, {
action: 'query',
list: 'logevents',
leuser: username,
lelimit: 'max',
formatversion: 2
});
const allUserLogs = (allUserLogsReq.query && allUserLogsReq.query.logevents) || [];
// Cross-check for public logs that indicate CU activity
const pubCUEvt = allUserLogs.find(function(ev) {
return cuInPublicTypes.indexOf(ev.type) !== -1;
});
if (pubCUEvt) {
const pubCUTs = pubCUEvt.timestamp.substring(0, 10);
if (lastCU === "Never" || pubCUTs > lastCU) lastCU = pubCUTs;
}
// Identify latest admin action
const admEvent = allUserLogs.find(function(ev) {
return adminTypes.indexOf(ev.type) !== -1;
});
const lastAdm = admEvent ? admEvent.timestamp.substring(0, 10) : "Never";
// Get most recent log entry of any type
const lastGen = allUserLogs.length > 0 ? allUserLogs[0].timestamp.substring(0, 10) : "Never";
// Look for Suppression actions (filtering for setstatus)
const osLog = await robustCall(localApi, {
action: 'query',
list: 'logevents',
leuser: username,
letype: 'suppress',
lelimit: 50, // Scan more entries to find setstatus
formatversion: 2
});
let lastOS = "-";
var uGroups = extractGroups(u.groups);
var hasCurrentOSGroups = (uGroups.indexOf('suppress') !== -1 || uGroups.indexOf('oversight') !== -1);
if (hasCurrentOSGroups) {
lastOS = "Never"; // Default for active OS with no logs
if (osLog.query && osLog.query.logevents) {
// Find first entry that is a subtype 'setstatus'
const setStatusEvt = osLog.query.logevents.find(function(e) {
return e.params && e.params.subtype === 'setstatus';
});
if (setStatusEvt) {
lastOS = setStatusEvt.timestamp.substring(0, 10);
}
}
}
// Check last manual edit date
const edLog = await robustCall(localApi, {
action: 'query',
list: 'usercontribs',
ucuser: username,
uclimit: 1,
formatversion: 2
});
const lastEdit = (edLog.query && edLog.query.usercontribs && edLog.query.usercontribs[0]) ? edLog.query.usercontribs[0].timestamp.substring(0, 10) : "Never";
wt += '|-\n| style="text-align:left; white-space:nowrap;" | [[' + iw + ':Special:Log/' + username + '|' + username + '@' + db + ']] || ' +
sinceDate + ' || ' + days + ' || ' + lastCU + ' || ' + lastAdm + ' || ' + lastOS + ' || ' + lastGen + ' || ' + lastEdit + '\n';
}
}
} catch (err) {
console.error('Audit failed for ' + db, err);
}
$('#bar').val(i + 1);
await sleep(DELAY_MS);
}
wt += '|}\n\n=== References ===\n<references />\n';
$('#out').val(wt);
$('#output-container').show();
$('#status-msg').text('Audit complete!').css("color", "green");
$('#start').prop('disabled', false);
$('#stop').prop('disabled', true);
});
}
setupUI();
});
})();
36n2q1w5xo2kqs46ottyaek3y1oh1ot
739177
739176
2026-04-23T12:49:48Z
MrJaroslavik
44012
+
739177
javascript
text/javascript
// GlobalCheckUserList.js
// -------------------------------------------------------
// Features:
// - Scans current CheckUsers across 800+ projects.
// - Bypasses API limits for user lists and history logs.
// - Checks Meta (steward) and Local (bureaucrat) logs for the grant date.
// - Single Table: Unified wikitext output in one sortable table.
// - Navigation: Nicknames link to local logs; headers link to project, list, and CU log.
// - Compatibility: No optional chaining (?.) for MediaWiki editor support.
// - Created with help of Gemini 3.
// -------------------------------------------------------
(function() {
'use strict';
// Run only on Special:BlankPage/GlobalCheckUserList
const isBlankPage = mw.config.get('wgCanonicalSpecialPageName') === 'Blankpage';
const isOurScript = mw.config.get('wgTitle').includes('GlobalCheckUserList');
if (!isBlankPage || !isOurScript) return;
let globalWikiMap = {};
// // List of wikis where CheckUser extension is disabled - https://noc.wikimedia.org/conf/highlight.php?file=dblists/checkuser-disabled.dblist
const disabledCUWikis = [
'aawikibooks', 'abwiktionary', 'advisorywiki', 'akwiktionary', 'angwikiquote',
'angwikisource', 'astwikibooks', 'astwikiquote', 'aswikibooks', 'aswiktionary',
'avwiktionary', 'aywikibooks', 'bhwiktionary', 'biwikibooks', 'biwiktionary',
'bmwikibooks', 'bmwikiquote', 'bmwiktionary', 'bowiktionary', 'chwikibooks',
'chwiktionary', 'cnwikimedia', 'crwikiquote', 'crwiktionary', 'dzwiktionary',
'gawikibooks', 'gnwikibooks', 'gotwikibooks', 'guwikibooks', 'htwikisource',
'huwikinews', 'hzwiki', 'iewikibooks', 'iiwiki', 'internalwiki', 'kjwiki',
'kkwikiquote', 'knwikibooks', 'krwiki', 'krwikiquote', 'kswikibooks',
'kswikiquote', 'kwwikiquote', 'lbwikibooks', 'lbwikiquote', 'lnwikibooks',
'lvwikibooks', 'mhwiktionary', 'mnwikibooks', 'muswiki', 'nahwikibooks',
'nawikibooks', 'nawikiquote', 'ndswikibooks', 'ndswikiquote', 'piwiktionary',
'pswikibooks', 'quwikibooks', 'quwikiquote', 'rmwikibooks', 'rmwiktionary',
'rnwiktionary', 'scwiktionary', 'searchcomwiki', 'snwiktionary', 'spcomwiki',
'swwikibooks', 'thwikinews', 'tkwikibooks', 'tkwikiquote', 'towiktionary',
'transitionteamwiki', 'trwikinews', 'ttwikiquote', 'twwiktionary',
'ugwikibooks', 'ugwikiquote', 'vowikibooks', 'vowikiquote', 'wawikibooks',
'wikimania2005wiki', 'wikimania2006wiki', 'wikimania2007wiki',
'wikimania2009wiki', 'wikimania2015wiki', 'wowikiquote', 'xhwikibooks',
'xhwiktionary', 'yowikibooks', 'yowiktionary', 'zawikibooks', 'zawikiquote',
'zawiktionary', 'zh_min_nanwikibooks', 'zuwikibooks'
];
// Projects known to have local CheckUsers - https://meta.wikimedia.org/wiki/CheckUser_policy/Users_with_CheckUser_access
const localCUWikis = [
'arwiki', 'bnwiki', 'cawiki', 'cswiki', 'dawiki', 'nlwiki', 'enwikibooks',
'enwiki', 'enwikivoyage', 'enwiktionary', 'fiwiki', 'frwiki', 'dewiki',
'hewiki', 'huwiki', 'idwiki', 'itwiki', 'jawiki', 'kowiki', 'fawiki',
'plwiki', 'ptwiki', 'ruwiki', 'srwiki', 'simplewiki', 'slwiki', 'eswiki',
'svwiki', 'thwiki', 'trwiki', 'ukwiki', 'viwiki', 'commonswiki',
'specieswiki', 'metawiki', 'wikidatawiki'
];
// Manual overrides for missing grant dates
// Format: "Username@dbname": "YYYY-MM-DD"
const customGrantDates = {
"RiazACU@bnwiki": "2022-05-13",
"KnudW@dawiki": "2017-03-23",
"Dbeef@enwiki": "2025-03-07",
"MarcGarver@enwikibooks": "2012-03-26",
"Jake Park@eswiki": "2021-07-03",
"Nohirara@idwiki": "2016-06-03",
"Superspritz@itwiki": "2012-12-06",
"Uncitoyen@trwiki": "2020-03-31"
};
// Fetch all available wikis and filter out restricted ones
function loadGlobalWikiMap() {
const api = new mw.Api();
return api.get({
action: 'sitematrix',
format: 'json',
smtype: 'language|special',
smlangprop: 'site',
smsiteprop: 'dbname|url',
formatversion: 2,
origin: '*'
}).then(function(data) {
const matrix = data.sitematrix;
const wikiMap = {};
Object.keys(matrix).forEach(key => {
const entry = matrix[key];
if (entry.site && Array.isArray(entry.site)) {
entry.site.forEach(site => {
if (site.private || site.fishbowl || disabledCUWikis.indexOf(site.dbname) !== -1) return;
wikiMap[site.dbname] = site.url;
});
}
});
if (matrix.specials && Array.isArray(matrix.specials)) {
matrix.specials.forEach(special => {
if (special.private || special.fishbowl || disabledCUWikis.indexOf(special.dbname) !== -1) return;
wikiMap[special.dbname] = special.url;
});
}
return wikiMap;
});
}
const DELAY_MS = 500;
const sleep = ms => new Promise(r => setTimeout(r, ms));
// Convert database names to interwiki prefixes for table links
function getInterwikiPrefix(db) {
const specialMap = {
'commonswiki': 'c',
'metawiki': 'm',
'wikidatawiki': 'd',
'wikifunctionswiki': 'f',
'mediawikiwiki': 'mw',
'specieswiki': 'species',
'sourceswiki': 'oldwikisource',
'foundationwiki': 'foundation',
'incubatorwiki': 'incubator',
'outreachwiki': 'outreach',
'betawikiversity': 'betawikiversity',
'be_x_oldwiki': 'be-tarask',
'zh_classicalwiki': 'lzh',
'zh_min_nanwiki': 'nan',
'zh_yuewiki': 'yue'
};
if (specialMap[db]) return specialMap[db];
const name = db.replace(/_/g, '-');
if (name.endsWith('wikisource')) return 's:' + name.slice(0, -10);
if (name.endsWith('wikiversity')) return 'v:' + name.slice(0, -11);
if (name.endsWith('wiktionary')) return 'wikt:' + name.slice(0, -10);
if (name.endsWith('wikivoyage')) return 'voy:' + name.slice(0, -10);
if (name.endsWith('wikibooks')) return 'b:' + name.slice(0, -9);
if (name.endsWith('wikiquote')) return 'q:' + name.slice(0, -9);
if (name.endsWith('wikinews')) return 'n:' + name.slice(0, -8);
if (name.endsWith('wikimedia')) return 'wm' + name.slice(0, -9);
if (name.endsWith('wiki')) return 'w:' + name.slice(0, -4);
return 'w:' + name;
}
// Process various API response formats into a clean array of group names
const extractGroups = (data) => {
if (!data) return [];
var res = [];
if (Array.isArray(data)) {
res = data;
} else if (typeof data === 'object') {
res = Object.values(data);
} else if (typeof data === 'string') {
res = data.split(',').map(function(s) {
return s.trim();
});
}
return res.map(function(g) {
if (typeof g !== 'string') return g;
return g.replace(/\s+/g, '').toLowerCase();
});
};
// Make an API call with automatic retries for 429 Busy errors
async function robustCall(api, params) {
let retries = 0;
const maxRetries = 3;
while (retries < maxRetries) {
try {
return await api.get(params);
} catch (err) {
if (err?.status === 429) {
retries++;
const waitTime = parseInt(err.xhr?.getResponseHeader('Retry-After')) || (30 * retries);
$('#status-msg').html(
`<span style="color:orange; font-weight:bold;">Server busy! Waiting ${waitTime}s...</span>`
);
await sleep(waitTime * 1000);
} else {
throw err;
}
}
}
throw new Error("API unreachable after multiple retries");
}
mw.loader.using(['mediawiki.api', 'mediawiki.ForeignApi']).then(async function() {
$('#mw-content-text').html('<strong>GlobalCheckUserList.js: Mapping wikis...</strong>');
globalWikiMap = await loadGlobalWikiMap();
const metaApi = new mw.ForeignApi('https://meta.wikimedia.org/w/api.php');
let isRunning = false;
let currentFilterMode = 'all';
function setupUI() {
$('#firstHeading').text('GlobalCheckUserList');
$('#mw-content-text').empty().append(`
<div style="border:1px solid #a2a9b1; padding:15px; background:#f8f9fa;">
<p>Audits current CheckUsers across Wikimedia projects. Reports are grouped into one single table.</p>
<div style="margin-bottom:10px; display:flex; align-items:center; gap:20px; font-size:13px;">
<strong>Wiki Filter:</strong>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-all" checked> All</label>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-localcu"> Local CU Wikis</label>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-only"> Only these</label>
<span id="wiki-help-trigger" style="cursor:help; background:#36c; color:#fff; border-radius:50%; width:18px; height:18px; display:inline-block; text-align:center; font-weight:bold;" title="Show available DB names">?</span>
</div>
<div id="filter-input-container" style="display:none; margin-bottom:15px;">
<input id="wiki-filter" type="text" style="width:100%;" placeholder="dbname1, dbname2...">
</div>
<div id="wiki-list-help" style="display:none; margin-bottom:10px; padding:10px; background:#fff; border:1px solid #a2a9b1; font-size:11px; max-height:120px; overflow-y:auto; font-family:monospace;">
<strong>Available database names:</strong><br>${Object.keys(globalWikiMap).sort().join(', ')}
</div>
<div style="margin-top:20px;">
<button id="start" class="mw-ui-button mw-ui-progressive">Run Audit</button>
<button id="stop" class="mw-ui-button mw-ui-destructive" disabled>Stop</button>
</div>
<div id="status-msg" style="margin-top:10px; font-weight:bold; color:#0056b3;">Ready.</div>
<div style="margin-top:5px;">
<progress id="bar" value="0" max="${Object.keys(globalWikiMap).length}" style="width:100%"></progress>
</div>
<div id="output-container" style="display:none; margin-top:15px;">
<strong>Wikitext Report:</strong>
<textarea id="out" style="width:100%; height:450px; font-family:monospace; font-size:11px; padding:5px; border:1px solid #c8ccd1;"></textarea>
</div>
</div>
`);
$('#btn-all').click(function() {
currentFilterMode = 'all';
$('#filter-input-container').hide();
});
$('#btn-localcu').click(function() {
currentFilterMode = 'localcu';
$('#filter-input-container').hide();
});
$('#btn-only').click(function() {
currentFilterMode = 'include';
$('#filter-input-container').show().focus();
});
$('#wiki-help-trigger').click(function() {
$('#wiki-list-help').toggle();
});
$('#start').click(function() {
runAudit();
});
$('#stop').click(function() {
isRunning = false;
});
}
async function findGrantDate(user, db) {
// Check manual list first
const key = user + "@" + db;
if (customGrantDates[key]) return customGrantDates[key];
// Search Meta-Wiki for steward actions (User:Name@dbname)
// We use User:Name for Meta itself, and User:Name@dbname for other wikis
const title = (db === 'metawiki') ? 'User:' + user : 'User:' + user + '@' + db;
let mPars = {
action: 'query',
list: 'logevents',
letype: 'rights',
letitle: title,
ledir: 'newer',
lelimit: 'max',
formatversion: 2
};
let resM = await robustCall(metaApi, mPars);
let logsM = (resM.query && resM.query.logevents) || [];
for (let ev of logsM) {
let p = ev.params || {};
let nG = extractGroups(p.newgroups || p.add || p[1] || p["1"]);
let oG = extractGroups(p.oldgroups || p.remove || p[0] || p["0"]);
if (nG.indexOf('checkuser') !== -1 && oG.indexOf('checkuser') === -1) {
return ev.timestamp.substring(0, 10);
}
}
return "Unknown";
}
async function runAudit() {
isRunning = true;
let wt = "";
const adminTypes = [
'block', 'delete', 'protect', 'rights', 'merge', 'abusefilter',
'contentmodel', 'import', 'managetags', 'massmessage',
'checkuser-temporary-account', 'ipinfo', 'pagelang',
'renameuser', 'stable', 'gblblock', 'abusefilter-protected-vars'
];
const cuInPublicTypes = ['abusefilterprivatedetails'];
$('#start').prop('disabled', true);
$('#stop').prop('disabled', false);
$('#out').val('').show();
$('#output-container').show();
$('#status-msg').text('Waiting for queue lock...').css("color", "orange");
// Request browser lock to prevent concurrent runs
await navigator.locks.request('global_cu_list_lock', async () => {
const ts = new Date().toISOString().replace('T', ' ').substring(0, 16) + ' (UTC)';
wt = "== Global CheckUser List ==\n";
wt += "''Report generated on: " + ts + "<br />\n";
wt += "Generated with [[testwiki:User:MrJaroslavik/GlobalCheckUserList.js|GlobalCheckUserList.js]]''\n";
const filterText = $('#wiki-filter').val().trim().toLowerCase();
const filterList = filterText ? filterText.split(',').map(function(s) {
return s.trim();
}).filter(function(s) {
return s !== "";
}) : [];
if (currentFilterMode === 'localcu') {
wt += "<br />''Filter applied: Wikis with local CheckUser communities''\n";
} else if (currentFilterMode === 'include' && filterList.length > 0) {
wt += "<br />''Filter applied: Only these wikis (" + filterList.join(', ') + ")''\n";
}
wt += "\n";
wt += '{| class="wikitable sortable" style="font-size:90%; width:100%;"\n' +
'! User !! CU Since !! Duration !! Last CU Action<ref>Logs: checkuserlog, checkuser-temporary-account, abusefilterprivatedetails</ref> !! ' +
'Last Admin Action<ref>Logs: ' + adminTypes.join(', ') + '</ref> !! ' +
'Last OS Action<ref>Logs: suppress</ref> !! ' +
'Last Logged Action<ref>Logs: all public logged actions</ref> !! Last Edit\n';
const allWikis = Object.keys(globalWikiMap);
let wikisToScan;
if (currentFilterMode === 'include' && filterList.length > 0) {
wikisToScan = allWikis.filter(function(w) {
return filterList.indexOf(w) !== -1;
});
} else if (currentFilterMode === 'localcu') {
wikisToScan = allWikis.filter(function(w) {
return localCUWikis.indexOf(w) !== -1;
});
} else {
wikisToScan = allWikis;
}
$('#bar').attr('max', wikisToScan.length).val(0);
for (let i = 0; i < wikisToScan.length; i++) {
if (!isRunning) break;
const db = wikisToScan[i];
$('#status-msg').text('Auditing ' + db + ' (' + (i + 1) + '/' + wikisToScan.length + ')...').css("color", "#0056b3");
try {
const wikiUrl = globalWikiMap[db];
const localApi = new mw.ForeignApi(wikiUrl + '/w/api.php');
// Find all users currently in the checkuser group
let users = [],
auDone = false,
auCont = null;
while (!auDone && isRunning) {
let auPars = {
action: 'query',
list: 'allusers',
augroup: 'checkuser',
auprop: 'groups',
aulimit: 'max',
formatversion: 2
};
if (auCont) Object.assign(auPars, auCont);
let res = await robustCall(localApi, auPars);
users = users.concat(res.query.allusers || []);
if (res.continue) auCont = res.continue;
else auDone = true;
}
if (users.length > 0) {
const iw = getInterwikiPrefix(db);
wt += '|-\n! colspan="8" style="background:#eaecf0; text-align:center;" | ' +
'[[' + iw + ':|' + db + ']] — [[' + iw + ':Special:ListUsers/checkuser|(list)]] — [[' + iw + ':Special:CheckUserLog|(log)]]\n';
for (const u of users) {
const username = u.name;
const sinceDate = await findGrantDate(username, db, localApi);
// Calculate how many days user has held rights
let days = "-";
if (sinceDate && sinceDate !== "Unknown") {
const cleanDate = sinceDate.substring(0, 10);
const diff = new Date() - new Date(cleanDate);
days = Math.floor(diff / 86400000) + "d";
}
// Check private CheckUser log
const cuLog = await robustCall(localApi, {
action: 'query',
list: 'checkuserlog',
culuser: username,
cullimit: 1,
formatversion: 2
});
let lastCU = (cuLog.query && cuLog.query.checkuserlog && cuLog.query.checkuserlog.entries && cuLog.query.checkuserlog.entries[0]) ?
cuLog.query.checkuserlog.entries[0].timestamp.substring(0, 10) : "Never";
// Fetch public log history
const allUserLogsReq = await robustCall(localApi, {
action: 'query',
list: 'logevents',
leuser: username,
lelimit: 'max',
formatversion: 2
});
const allUserLogs = (allUserLogsReq.query && allUserLogsReq.query.logevents) || [];
// Cross-check for public logs that indicate CU activity
const pubCUEvt = allUserLogs.find(function(ev) {
return cuInPublicTypes.indexOf(ev.type) !== -1;
});
if (pubCUEvt) {
const pubCUTs = pubCUEvt.timestamp.substring(0, 10);
if (lastCU === "Never" || pubCUTs > lastCU) lastCU = pubCUTs;
}
// Identify latest admin action
const admEvent = allUserLogs.find(function(ev) {
return adminTypes.indexOf(ev.type) !== -1;
});
const lastAdm = admEvent ? admEvent.timestamp.substring(0, 10) : "Never";
// Get most recent log entry of any type
const lastGen = allUserLogs.length > 0 ? allUserLogs[0].timestamp.substring(0, 10) : "Never";
// Look for Suppression actions (filtering for setstatus)
const osLog = await robustCall(localApi, {
action: 'query',
list: 'logevents',
leuser: username,
letype: 'suppress',
lelimit: 50, // Scan more entries to find setstatus
formatversion: 2
});
let lastOS = "-";
var uGroups = extractGroups(u.groups);
var hasCurrentOSGroups = (uGroups.indexOf('suppress') !== -1 || uGroups.indexOf('oversight') !== -1);
if (hasCurrentOSGroups) {
lastOS = "Never";
if (osLog.query && osLog.query.logevents) {
// Find first entry that is NOT 'setstatus'
const realOSEvent = osLog.query.logevents.find(function(e) {
// Check if params exists and if subtype is NOT setstatus
return !e.params || (e.params && e.params.subtype !== 'setstatus');
});
if (realOSEvent) {
lastOS = realOSEvent.timestamp.substring(0, 10);
}
}
}
// Check last manual edit date
const edLog = await robustCall(localApi, {
action: 'query',
list: 'usercontribs',
ucuser: username,
uclimit: 1,
formatversion: 2
});
const lastEdit = (edLog.query && edLog.query.usercontribs && edLog.query.usercontribs[0]) ? edLog.query.usercontribs[0].timestamp.substring(0, 10) : "Never";
wt += '|-\n| style="text-align:left; white-space:nowrap;" | [[' + iw + ':Special:Log/' + username + '|' + username + '@' + db + ']] || ' +
sinceDate + ' || ' + days + ' || ' + lastCU + ' || ' + lastAdm + ' || ' + lastOS + ' || ' + lastGen + ' || ' + lastEdit + '\n';
}
}
} catch (err) {
console.error('Audit failed for ' + db, err);
}
$('#bar').val(i + 1);
await sleep(DELAY_MS);
}
wt += '|}\n\n=== References ===\n<references />\n';
$('#out').val(wt);
$('#output-container').show();
$('#status-msg').text('Audit complete!').css("color", "green");
$('#start').prop('disabled', false);
$('#stop').prop('disabled', true);
});
}
setupUI();
});
})();
4rujcsdm5hd5ivljuiab3z7dd7ykqa5
739178
739177
2026-04-23T13:57:16Z
MrJaroslavik
44012
+3
739178
javascript
text/javascript
// GlobalCheckUserList.js
// -------------------------------------------------------
// Features:
// - Scans current CheckUsers across 800+ projects. With filters "only these" and "Only with local CheckUsers"
// - Checks Checks Meta and Local logs for the grant date.
// - Wikitext output in one sortable table.
// - Nicknames link to local logs; headers link to project, CheckUsers list, and CheckUserLog.
// - Shows last logged actions - CheckUser, Admin, General and if User is OS, shows last OS action
// - Created with Gemini 3.
// -------------------------------------------------------
(function() {
'use strict';
// Run only on Special:BlankPage/GlobalCheckUserList
const isBlankPage = mw.config.get('wgCanonicalSpecialPageName') === 'Blankpage';
const isOurScript = mw.config.get('wgTitle').includes('GlobalCheckUserList');
if (!isBlankPage || !isOurScript) return;
let globalWikiMap = {};
// // List of wikis where CheckUser extension is disabled - https://noc.wikimedia.org/conf/highlight.php?file=dblists/checkuser-disabled.dblist
const disabledCUWikis = [
'aawikibooks', 'abwiktionary', 'advisorywiki', 'akwiktionary', 'angwikiquote',
'angwikisource', 'astwikibooks', 'astwikiquote', 'aswikibooks', 'aswiktionary',
'avwiktionary', 'aywikibooks', 'bhwiktionary', 'biwikibooks', 'biwiktionary',
'bmwikibooks', 'bmwikiquote', 'bmwiktionary', 'bowiktionary', 'chwikibooks',
'chwiktionary', 'cnwikimedia', 'crwikiquote', 'crwiktionary', 'dzwiktionary',
'gawikibooks', 'gnwikibooks', 'gotwikibooks', 'guwikibooks', 'htwikisource',
'huwikinews', 'hzwiki', 'iewikibooks', 'iiwiki', 'internalwiki', 'kjwiki',
'kkwikiquote', 'knwikibooks', 'krwiki', 'krwikiquote', 'kswikibooks',
'kswikiquote', 'kwwikiquote', 'lbwikibooks', 'lbwikiquote', 'lnwikibooks',
'lvwikibooks', 'mhwiktionary', 'mnwikibooks', 'muswiki', 'nahwikibooks',
'nawikibooks', 'nawikiquote', 'ndswikibooks', 'ndswikiquote', 'piwiktionary',
'pswikibooks', 'quwikibooks', 'quwikiquote', 'rmwikibooks', 'rmwiktionary',
'rnwiktionary', 'scwiktionary', 'searchcomwiki', 'snwiktionary', 'spcomwiki',
'swwikibooks', 'thwikinews', 'tkwikibooks', 'tkwikiquote', 'towiktionary',
'transitionteamwiki', 'trwikinews', 'ttwikiquote', 'twwiktionary',
'ugwikibooks', 'ugwikiquote', 'vowikibooks', 'vowikiquote', 'wawikibooks',
'wikimania2005wiki', 'wikimania2006wiki', 'wikimania2007wiki',
'wikimania2009wiki', 'wikimania2015wiki', 'wowikiquote', 'xhwikibooks',
'xhwiktionary', 'yowikibooks', 'yowiktionary', 'zawikibooks', 'zawikiquote',
'zawiktionary', 'zh_min_nanwikibooks', 'zuwikibooks'
];
// Projects known to have local CheckUsers - https://meta.wikimedia.org/wiki/CheckUser_policy/Users_with_CheckUser_access
const localCUWikis = [
'arwiki', 'bnwiki', 'cawiki', 'cswiki', 'dawiki', 'nlwiki', 'enwikibooks',
'enwiki', 'enwikivoyage', 'enwiktionary', 'fiwiki', 'frwiki', 'dewiki',
'hewiki', 'huwiki', 'idwiki', 'itwiki', 'jawiki', 'kowiki', 'fawiki',
'plwiki', 'ptwiki', 'ruwiki', 'srwiki', 'simplewiki', 'slwiki', 'eswiki',
'svwiki', 'thwiki', 'trwiki', 'ukwiki', 'viwiki', 'commonswiki',
'specieswiki', 'metawiki', 'wikidatawiki'
];
// Manual overrides for missing grant dates
// Format: "Username@dbname": "YYYY-MM-DD"
const customGrantDates = {
"RiazACU@bnwiki": "2022-05-13",
"KnudW@dawiki": "2017-03-23",
"Dbeef@enwiki": "2025-03-07",
"MarcGarver@enwikibooks": "2012-03-26",
"Jake Park@eswiki": "2021-07-03",
"Nohirara@idwiki": "2016-06-03",
"Superspritz@itwiki": "2012-12-06",
"Uncitoyen@trwiki": "2020-03-31"
};
// Fetch all available wikis and filter out restricted ones
function loadGlobalWikiMap() {
const api = new mw.Api();
return api.get({
action: 'sitematrix',
format: 'json',
smtype: 'language|special',
smlangprop: 'site',
smsiteprop: 'dbname|url',
formatversion: 2,
origin: '*'
}).then(function(data) {
const matrix = data.sitematrix;
const wikiMap = {};
Object.keys(matrix).forEach(key => {
const entry = matrix[key];
if (entry.site && Array.isArray(entry.site)) {
entry.site.forEach(site => {
if (site.private || site.fishbowl || disabledCUWikis.indexOf(site.dbname) !== -1) return;
wikiMap[site.dbname] = site.url;
});
}
});
if (matrix.specials && Array.isArray(matrix.specials)) {
matrix.specials.forEach(special => {
if (special.private || special.fishbowl || disabledCUWikis.indexOf(special.dbname) !== -1) return;
wikiMap[special.dbname] = special.url;
});
}
return wikiMap;
});
}
const DELAY_MS = 500;
const sleep = ms => new Promise(r => setTimeout(r, ms));
// Convert database names to interwiki prefixes for table links
function getInterwikiPrefix(db) {
const specialMap = {
'commonswiki': 'c',
'metawiki': 'm',
'wikidatawiki': 'd',
'wikifunctionswiki': 'f',
'mediawikiwiki': 'mw',
'specieswiki': 'species',
'sourceswiki': 'oldwikisource',
'foundationwiki': 'foundation',
'incubatorwiki': 'incubator',
'outreachwiki': 'outreach',
'betawikiversity': 'betawikiversity',
'be_x_oldwiki': 'be-tarask',
'zh_classicalwiki': 'lzh',
'zh_min_nanwiki': 'nan',
'zh_yuewiki': 'yue'
};
if (specialMap[db]) return specialMap[db];
const name = db.replace(/_/g, '-');
if (name.endsWith('wikisource')) return 's:' + name.slice(0, -10);
if (name.endsWith('wikiversity')) return 'v:' + name.slice(0, -11);
if (name.endsWith('wiktionary')) return 'wikt:' + name.slice(0, -10);
if (name.endsWith('wikivoyage')) return 'voy:' + name.slice(0, -10);
if (name.endsWith('wikibooks')) return 'b:' + name.slice(0, -9);
if (name.endsWith('wikiquote')) return 'q:' + name.slice(0, -9);
if (name.endsWith('wikinews')) return 'n:' + name.slice(0, -8);
if (name.endsWith('wikimedia')) return 'wm' + name.slice(0, -9);
if (name.endsWith('wiki')) return 'w:' + name.slice(0, -4);
return 'w:' + name;
}
// Process various API response formats into a clean array of group names
const extractGroups = (data) => {
if (!data) return [];
var res = [];
if (Array.isArray(data)) {
res = data;
} else if (typeof data === 'object') {
res = Object.values(data);
} else if (typeof data === 'string') {
res = data.split(',').map(function(s) {
return s.trim();
});
}
return res.map(function(g) {
if (typeof g !== 'string') return g;
return g.replace(/\s+/g, '').toLowerCase();
});
};
// Make an API call with automatic retries for 429 Busy errors
async function robustCall(api, params) {
let retries = 0;
const maxRetries = 3;
while (retries < maxRetries) {
try {
return await api.get(params);
} catch (err) {
if (err?.status === 429) {
retries++;
const waitTime = parseInt(err.xhr?.getResponseHeader('Retry-After')) || (30 * retries);
$('#status-msg').html(
`<span style="color:orange; font-weight:bold;">Server busy! Waiting ${waitTime}s...</span>`
);
await sleep(waitTime * 1000);
} else {
throw err;
}
}
}
throw new Error("API unreachable after multiple retries");
}
mw.loader.using(['mediawiki.api', 'mediawiki.ForeignApi']).then(async function() {
$('#mw-content-text').html('<strong>GlobalCheckUserList.js: Mapping wikis...</strong>');
globalWikiMap = await loadGlobalWikiMap();
const metaApi = new mw.ForeignApi('https://meta.wikimedia.org/w/api.php');
let isRunning = false;
let currentFilterMode = 'all';
function setupUI() {
$('#firstHeading').text('GlobalCheckUserList');
$('#mw-content-text').empty().append(`
<div style="border:1px solid #a2a9b1; padding:15px; background:#f8f9fa;">
<p>Audits current CheckUsers across Wikimedia projects. Reports are grouped into one single table.</p>
<div style="margin-bottom:10px; display:flex; align-items:center; gap:20px; font-size:13px;">
<strong>Wiki Filter:</strong>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-all" checked> All</label>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-localcu"> Local CU Wikis</label>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-only"> Only these</label>
<span id="wiki-help-trigger" style="cursor:help; background:#36c; color:#fff; border-radius:50%; width:18px; height:18px; display:inline-block; text-align:center; font-weight:bold;" title="Show available DB names">?</span>
</div>
<div id="filter-input-container" style="display:none; margin-bottom:15px;">
<input id="wiki-filter" type="text" style="width:100%;" placeholder="dbname1, dbname2...">
</div>
<div id="wiki-list-help" style="display:none; margin-bottom:10px; padding:10px; background:#fff; border:1px solid #a2a9b1; font-size:11px; max-height:120px; overflow-y:auto; font-family:monospace;">
<strong>Available database names:</strong><br>${Object.keys(globalWikiMap).sort().join(', ')}
</div>
<div style="margin-top:20px;">
<button id="start" class="mw-ui-button mw-ui-progressive">Run Audit</button>
<button id="stop" class="mw-ui-button mw-ui-destructive" disabled>Stop</button>
</div>
<div id="status-msg" style="margin-top:10px; font-weight:bold; color:#0056b3;">Ready.</div>
<div style="margin-top:5px;">
<progress id="bar" value="0" max="${Object.keys(globalWikiMap).length}" style="width:100%"></progress>
</div>
<div id="output-container" style="display:none; margin-top:15px;">
<strong>Wikitext Report:</strong>
<textarea id="out" style="width:100%; height:450px; font-family:monospace; font-size:11px; padding:5px; border:1px solid #c8ccd1;"></textarea>
</div>
</div>
`);
$('#btn-all').click(function() {
currentFilterMode = 'all';
$('#filter-input-container').hide();
});
$('#btn-localcu').click(function() {
currentFilterMode = 'localcu';
$('#filter-input-container').hide();
});
$('#btn-only').click(function() {
currentFilterMode = 'include';
$('#filter-input-container').show().focus();
});
$('#wiki-help-trigger').click(function() {
$('#wiki-list-help').toggle();
});
$('#start').click(function() {
runAudit();
});
$('#stop').click(function() {
isRunning = false;
});
}
async function findGrantDate(user, db) {
// Check manual list first
const key = user + "@" + db;
if (customGrantDates[key]) return customGrantDates[key];
// Search Meta-Wiki for steward actions (User:Name@dbname)
// We use User:Name for Meta itself, and User:Name@dbname for other wikis
const title = (db === 'metawiki') ? 'User:' + user : 'User:' + user + '@' + db;
let mPars = {
action: 'query',
list: 'logevents',
letype: 'rights',
letitle: title,
ledir: 'newer',
lelimit: 'max',
formatversion: 2
};
let resM = await robustCall(metaApi, mPars);
let logsM = (resM.query && resM.query.logevents) || [];
for (let ev of logsM) {
let p = ev.params || {};
let nG = extractGroups(p.newgroups || p.add || p[1] || p["1"]);
let oG = extractGroups(p.oldgroups || p.remove || p[0] || p["0"]);
if (nG.indexOf('checkuser') !== -1 && oG.indexOf('checkuser') === -1) {
return ev.timestamp.substring(0, 10);
}
}
return "Unknown";
}
async function runAudit() {
isRunning = true;
let wt = "";
const adminTypes = [
'block', 'delete', 'protect', 'rights', 'merge', 'abusefilter',
'contentmodel', 'import', 'managetags', 'massmessage',
'checkuser-temporary-account', 'ipinfo', 'pagelang',
'renameuser', 'stable', 'gblblock', 'abusefilter-protected-vars'
];
const cuInPublicTypes = ['abusefilterprivatedetails'];
$('#start').prop('disabled', true);
$('#stop').prop('disabled', false);
$('#out').val('').show();
$('#output-container').show();
$('#status-msg').text('Waiting for queue lock...').css("color", "orange");
// Request browser lock to prevent concurrent runs
await navigator.locks.request('global_cu_list_lock', async () => {
const ts = new Date().toISOString().replace('T', ' ').substring(0, 16) + ' (UTC)';
wt = "== Global CheckUser List ==\n";
wt += "''Report generated on: " + ts + "<br />\n";
wt += "Generated with [[testwiki:User:MrJaroslavik/GlobalCheckUserList.js|GlobalCheckUserList.js]]''\n";
const filterText = $('#wiki-filter').val().trim().toLowerCase();
const filterList = filterText ? filterText.split(',').map(function(s) {
return s.trim();
}).filter(function(s) {
return s !== "";
}) : [];
if (currentFilterMode === 'localcu') {
wt += "<br />''Filter applied: Wikis with local CheckUser communities''\n";
} else if (currentFilterMode === 'include' && filterList.length > 0) {
wt += "<br />''Filter applied: Only these wikis (" + filterList.join(', ') + ")''\n";
}
wt += "\n";
wt += '{| class="wikitable sortable" style="font-size:90%; width:100%;"\n' +
'! User !! CU Since !! Duration !! Last CU Action<ref>Logs: checkuserlog, checkuser-temporary-account, abusefilterprivatedetails</ref> !! ' +
'Last Admin Action<ref>Logs: ' + adminTypes.join(', ') + '</ref> !! ' +
'Last OS Action<ref>Logs: suppress</ref> !! ' +
'Last Logged Action<ref>Logs: all public logged actions</ref> !! Last Edit\n';
const allWikis = Object.keys(globalWikiMap);
let wikisToScan;
if (currentFilterMode === 'include' && filterList.length > 0) {
wikisToScan = allWikis.filter(function(w) {
return filterList.indexOf(w) !== -1;
});
} else if (currentFilterMode === 'localcu') {
wikisToScan = allWikis.filter(function(w) {
return localCUWikis.indexOf(w) !== -1;
});
} else {
wikisToScan = allWikis;
}
$('#bar').attr('max', wikisToScan.length).val(0);
for (let i = 0; i < wikisToScan.length; i++) {
if (!isRunning) break;
const db = wikisToScan[i];
$('#status-msg').text('Auditing ' + db + ' (' + (i + 1) + '/' + wikisToScan.length + ')...').css("color", "#0056b3");
try {
const wikiUrl = globalWikiMap[db];
const localApi = new mw.ForeignApi(wikiUrl + '/w/api.php');
// Find all users currently in the checkuser group
let users = [],
auDone = false,
auCont = null;
while (!auDone && isRunning) {
let auPars = {
action: 'query',
list: 'allusers',
augroup: 'checkuser',
auprop: 'groups',
aulimit: 'max',
formatversion: 2
};
if (auCont) Object.assign(auPars, auCont);
let res = await robustCall(localApi, auPars);
users = users.concat(res.query.allusers || []);
if (res.continue) auCont = res.continue;
else auDone = true;
}
if (users.length > 0) {
const iw = getInterwikiPrefix(db);
wt += '|-\n! colspan="8" style="background:#eaecf0; text-align:center;" | ' +
'[[' + iw + ':|' + db + ']] — [[' + iw + ':Special:ListUsers/checkuser|(list)]] — [[' + iw + ':Special:CheckUserLog|(log)]]\n';
for (const u of users) {
const username = u.name;
const sinceDate = await findGrantDate(username, db, localApi);
// Calculate how many days user has held rights
let days = "-";
if (sinceDate && sinceDate !== "Unknown") {
const cleanDate = sinceDate.substring(0, 10);
const diff = new Date() - new Date(cleanDate);
days = Math.floor(diff / 86400000) + "d";
}
// Check private CheckUser log
const cuLog = await robustCall(localApi, {
action: 'query',
list: 'checkuserlog',
culuser: username,
cullimit: 1,
formatversion: 2
});
let lastCU = (cuLog.query && cuLog.query.checkuserlog && cuLog.query.checkuserlog.entries && cuLog.query.checkuserlog.entries[0]) ?
cuLog.query.checkuserlog.entries[0].timestamp.substring(0, 10) : "Never";
// Fetch public log history
const allUserLogsReq = await robustCall(localApi, {
action: 'query',
list: 'logevents',
leuser: username,
lelimit: 'max',
formatversion: 2
});
const allUserLogs = (allUserLogsReq.query && allUserLogsReq.query.logevents) || [];
// Cross-check for public logs that indicate CU activity
const pubCUEvt = allUserLogs.find(function(ev) {
return cuInPublicTypes.indexOf(ev.type) !== -1;
});
if (pubCUEvt) {
const pubCUTs = pubCUEvt.timestamp.substring(0, 10);
if (lastCU === "Never" || pubCUTs > lastCU) lastCU = pubCUTs;
}
// Identify latest admin action
const admEvent = allUserLogs.find(function(ev) {
return adminTypes.indexOf(ev.type) !== -1;
});
const lastAdm = admEvent ? admEvent.timestamp.substring(0, 10) : "Never";
// Get most recent log entry of any type
const lastGen = allUserLogs.length > 0 ? allUserLogs[0].timestamp.substring(0, 10) : "Never";
// Look for Suppression actions (filtering for setstatus)
const osLog = await robustCall(localApi, {
action: 'query',
list: 'logevents',
leuser: username,
letype: 'suppress',
lelimit: 50, // Scan more entries to find setstatus
formatversion: 2
});
let lastOS = "-";
var uGroups = extractGroups(u.groups);
var hasCurrentOSGroups = (uGroups.indexOf('suppress') !== -1 || uGroups.indexOf('oversight') !== -1);
if (hasCurrentOSGroups) {
lastOS = "Never";
if (osLog.query && osLog.query.logevents) {
// Find first entry that is NOT 'setstatus'
const realOSEvent = osLog.query.logevents.find(function(e) {
// Check if params exists and if subtype is NOT setstatus
return !e.params || (e.params && e.params.subtype !== 'setstatus');
});
if (realOSEvent) {
lastOS = realOSEvent.timestamp.substring(0, 10);
}
}
}
// Check last manual edit date
const edLog = await robustCall(localApi, {
action: 'query',
list: 'usercontribs',
ucuser: username,
uclimit: 1,
formatversion: 2
});
const lastEdit = (edLog.query && edLog.query.usercontribs && edLog.query.usercontribs[0]) ? edLog.query.usercontribs[0].timestamp.substring(0, 10) : "Never";
wt += '|-\n| style="text-align:left; white-space:nowrap;" | [[' + iw + ':Special:Log/' + username + '|' + username + '@' + db + ']] || ' +
sinceDate + ' || ' + days + ' || ' + lastCU + ' || ' + lastAdm + ' || ' + lastOS + ' || ' + lastGen + ' || ' + lastEdit + '\n';
}
}
} catch (err) {
console.error('Audit failed for ' + db, err);
}
$('#bar').val(i + 1);
await sleep(DELAY_MS);
}
wt += '|}\n\n=== References ===\n<references />\n';
$('#out').val(wt);
$('#output-container').show();
$('#status-msg').text('Audit complete!').css("color", "green");
$('#start').prop('disabled', false);
$('#stop').prop('disabled', true);
});
}
setupUI();
});
})();
9rrs05uopgk4xb62irbuua7jm1059ey
739198
739178
2026-04-23T17:59:13Z
MrJaroslavik
44012
edit
739198
javascript
text/javascript
// GlobalCheckUserList.js
// -------------------------------------------------------
// Features:
// - Scans current CheckUsers across 800+ projects. With filters "only these" and "Only with local CheckUsers"
// - Checks Checks Meta and Local logs for the grant date.
// - Wikitext output in one sortable table.
// - Nicknames link to local logs; headers link to project, CheckUsers list, and CheckUserLog.
// - Shows last logged actions - CheckUser, Admin, General and if User is OS, shows last OS action
// - UI: Integrated at [[meta:Special:BlankPage/GlobalCheckUserList]].
// - Created with Gemini 3.
// -------------------------------------------------------
(function() {
'use strict';
// Run only on Special:BlankPage/GlobalCheckUserList
const isBlankPage = mw.config.get('wgCanonicalSpecialPageName') === 'Blankpage';
const isOurScript = mw.config.get('wgTitle').includes('GlobalCheckUserList');
if (!isBlankPage || !isOurScript) return;
let globalWikiMap = {};
// List of wikis where CheckUser extension is disabled - https://noc.wikimedia.org/conf/highlight.php?file=dblists/checkuser-disabled.dblist
const disabledCUWikis = [
'aawikibooks', 'abwiktionary', 'advisorywiki', 'akwiktionary', 'angwikiquote',
'angwikisource', 'astwikibooks', 'astwikiquote', 'aswikibooks', 'aswiktionary',
'avwiktionary', 'aywikibooks', 'bhwiktionary', 'biwikibooks', 'biwiktionary',
'bmwikibooks', 'bmwikiquote', 'bmwiktionary', 'bowiktionary', 'chwikibooks',
'chwiktionary', 'cnwikimedia', 'crwikiquote', 'crwiktionary', 'dzwiktionary',
'gawikibooks', 'gnwikibooks', 'gotwikibooks', 'guwikibooks', 'htwikisource',
'huwikinews', 'hzwiki', 'iewikibooks', 'iiwiki', 'internalwiki', 'kjwiki',
'kkwikiquote', 'knwikibooks', 'krwiki', 'krwikiquote', 'kswikibooks',
'kswikiquote', 'kwwikiquote', 'lbwikibooks', 'lbwikiquote', 'lnwikibooks',
'lvwikibooks', 'mhwiktionary', 'mnwikibooks', 'muswiki', 'nahwikibooks',
'nawikibooks', 'nawikiquote', 'ndswikibooks', 'ndswikiquote', 'piwiktionary',
'pswikibooks', 'quwikibooks', 'quwikiquote', 'rmwikibooks', 'rmwiktionary',
'rnwiktionary', 'scwiktionary', 'searchcomwiki', 'snwiktionary', 'spcomwiki',
'swwikibooks', 'thwikinews', 'tkwikibooks', 'tkwikiquote', 'towiktionary',
'transitionteamwiki', 'trwikinews', 'ttwikiquote', 'twwiktionary',
'ugwikibooks', 'ugwikiquote', 'vowikibooks', 'vowikiquote', 'wawikibooks',
'wikimania2005wiki', 'wikimania2006wiki', 'wikimania2007wiki',
'wikimania2009wiki', 'wikimania2015wiki', 'wowikiquote', 'xhwikibooks',
'xhwiktionary', 'yowikibooks', 'yowiktionary', 'zawikibooks', 'zawikiquote',
'zawiktionary', 'zh_min_nanwikibooks', 'zuwikibooks'
];
// Projects known to have local CheckUsers
const localCUWikis = [
'arwiki', 'bnwiki', 'cawiki', 'cswiki', 'dawiki', 'nlwiki', 'enwikibooks',
'enwiki', 'enwikivoyage', 'enwiktionary', 'fiwiki', 'frwiki', 'dewiki',
'hewiki', 'huwiki', 'idwiki', 'itwiki', 'jawiki', 'kowiki', 'fawiki',
'plwiki', 'ptwiki', 'ruwiki', 'srwiki', 'simplewiki', 'slwiki', 'eswiki',
'svwiki', 'thwiki', 'trwiki', 'ukwiki', 'viwiki', 'commonswiki',
'specieswiki', 'metawiki', 'wikidatawiki'
];
// Fetch all available wikis and filter out restricted ones
function loadGlobalWikiMap() {
const api = new mw.Api();
return api.get({
action: 'sitematrix',
format: 'json',
smtype: 'language|special',
smlangprop: 'site',
smsiteprop: 'dbname|url',
formatversion: 2,
origin: '*'
}).then(function(data) {
const matrix = data.sitematrix;
const wikiMap = {};
Object.keys(matrix).forEach(function(key) {
const entry = matrix[key];
if (entry.site && Array.isArray(entry.site)) {
entry.site.forEach(function(site) {
if (site.private || site.fishbowl || disabledCUWikis.indexOf(site.dbname) !== -1) return;
wikiMap[site.dbname] = site.url;
});
}
});
if (matrix.specials && Array.isArray(matrix.specials)) {
matrix.specials.forEach(function(special) {
if (special.private || special.fishbowl || disabledCUWikis.indexOf(special.dbname) !== -1) return;
wikiMap[special.dbname] = special.url;
});
}
return wikiMap;
});
}
// Convert database names to interwiki prefixes for table links
function getInterwikiPrefix(db) {
const specialMap = {
'commonswiki': 'c', 'metawiki': 'm', 'wikidatawiki': 'd',
'wikifunctionswiki': 'f', 'mediawikiwiki': 'mw', 'specieswiki': 'species',
'sourceswiki': 'oldwikisource', 'foundationwiki': 'foundation',
'incubatorwiki': 'incubator', 'outreachwiki': 'outreach',
'betawikiversity': 'betawikiversity', 'be_x_oldwiki': 'be-tarask',
'zh_classicalwiki': 'lzh', 'zh_min_nanwiki': 'nan', 'zh_yuewiki': 'yue'
};
if (specialMap[db]) return specialMap[db];
const name = db.replace(/_/g, '-');
if (name.endsWith('wikisource')) return 's:' + name.slice(0, -10);
if (name.endsWith('wikiversity')) return 'v:' + name.slice(0, -11);
if (name.endsWith('wiktionary')) return 'wikt:' + name.slice(0, -10);
if (name.endsWith('wikivoyage')) return 'voy:' + name.slice(0, -10);
if (name.endsWith('wikibooks')) return 'b:' + name.slice(0, -9);
if (name.endsWith('wikiquote')) return 'q:' + name.slice(0, -9);
if (name.endsWith('wikinews')) return 'n:' + name.slice(0, -8);
if (name.endsWith('wikimedia')) return 'wm' + name.slice(0, -9);
if (name.endsWith('wiki')) return 'w:' + name.slice(0, -4);
return 'w:' + name;
}
// Manual overrides for missing grant dates
// Format: "Username@dbname": "YYYY-MM-DD"
const customGrantDates = {
"RiazACU@bnwiki": "2022-05-13",
"KnudW@dawiki": "2017-03-23",
"Dbeef@enwiki": "2025-03-07",
"MarcGarver@enwikibooks": "2012-03-26",
"Jake Park@eswiki": "2021-07-03",
"Nohirara@idwiki": "2016-06-03",
"Superspritz@itwiki": "2012-12-06",
"Uncitoyen@trwiki": "2020-03-31"
};
// Helper function to pause execution (useful for preventing API limits)
const DELAY_MS = 500;
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
// Makes API calls with automatic retries for "429 Too Many Requests" errors
async function robustCall(api, params) {
let retries = 0;
const maxRetries = 3;
while (retries < maxRetries) {
try {
// Attempt to fetch data from the MediaWiki API
return await api.get(params);
} catch (err) {
// Check if the server is actively rejecting requests due to high load (HTTP 429)
// Note: Optional chaining (?.) is avoided for broad MediaWiki editor compatibility
if (err && err.status === 429) {
retries++;
// Read the 'Retry-After' header provided by the server, or default to a scaling wait time
const waitTime = parseInt(err.xhr && err.xhr.getResponseHeader('Retry-After')) || (30 * retries);
// Notify the user via the UI that the script is pausing (supports both UI container types)
$('#status-msg, #cu-loader').html(
`<span style="color:orange; font-weight:bold;">Server is busy! Pausing for ${waitTime} seconds...</span>`
).show();
// Pause execution for the requested duration before trying again
await sleep(waitTime * 1000);
} else {
// If it is a different error (network failure, 500 Internal Error, etc.), stop and throw
throw err;
}
}
}
// Fail completely if max retries are exceeded
throw new Error("Failed to reach API after multiple attempts due to server limits.");
}
// Returns a standardized UTC timestamp for report headers (YYYY-MM-DD HH:MM)
function getReportTimestamp() {
return new Date().toISOString().replace('T', ' ').substring(0, 16) + ' (UTC)';
}
// Process various API response formats into a clean array of group names
const extractGroups = function(data) {
if (!data) return [];
var res = [];
if (Array.isArray(data)) {
res = data;
} else if (typeof data === 'object') {
res = Object.values(data);
} else if (typeof data === 'string') {
res = data.split(',').map(function(s) {
return s.trim();
});
}
return res.map(function(g) {
if (typeof g !== 'string') return g;
return g.replace(/\s+/g, '').toLowerCase();
});
};
mw.loader.using(['mediawiki.api', 'mediawiki.ForeignApi']).then(async function() {
$('#mw-content-text').html('<strong>GlobalCheckUserList.js: Mapping wikis...</strong>');
globalWikiMap = await loadGlobalWikiMap();
const metaApi = new mw.ForeignApi('https://meta.wikimedia.org/w/api.php');
let isRunning = false;
let currentFilterMode = 'all';
function setupUI() {
$('#firstHeading').text('GlobalCheckUserList');
$('#mw-content-text').empty().append(`
<div style="border:1px solid #a2a9b1; padding:15px; background:#f8f9fa;">
<p>Audits current CheckUsers across Wikimedia projects. Reports are grouped into one single table.</p>
<div style="margin-bottom:10px; display:flex; align-items:center; gap:20px; font-size:13px;">
<strong>Wiki Filter:</strong>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-all" checked> All</label>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-localcu"> Local CU Wikis</label>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-only"> Only these</label>
<span id="wiki-help-trigger" style="cursor:help; background:#36c; color:#fff; border-radius:50%; width:18px; height:18px; display:inline-block; text-align:center; font-weight:bold;" title="Show available DB names">?</span>
</div>
<div id="filter-input-container" style="display:none; margin-bottom:15px;">
<input id="wiki-filter" type="text" style="width:100%;" placeholder="dbname1, dbname2...">
</div>
<div id="wiki-list-help" style="display:none; margin-bottom:10px; padding:10px; background:#fff; border:1px solid #a2a9b1; font-size:11px; max-height:120px; overflow-y:auto; font-family:monospace;">
<strong>Available database names:</strong><br>${Object.keys(globalWikiMap).sort().join(', ')}
</div>
<div style="margin-top:20px;">
<button id="start" class="mw-ui-button mw-ui-progressive">Run Audit</button>
<button id="stop" class="mw-ui-button mw-ui-destructive" disabled>Stop</button>
</div>
<div id="status-msg" style="margin-top:10px; font-weight:bold; color:#0056b3;">Ready.</div>
<div style="margin-top:5px;">
<progress id="bar" value="0" max="${Object.keys(globalWikiMap).length}" style="width:100%"></progress>
</div>
<div id="output-container" style="display:none; margin-top:15px;">
<strong>Wikitext Report:</strong>
<textarea id="out" style="width:100%; height:450px; font-family:monospace; font-size:11px; padding:5px; border:1px solid #c8ccd1;"></textarea>
</div>
</div>
`);
$('#btn-all').click(function() {
currentFilterMode = 'all';
$('#filter-input-container').hide();
});
$('#btn-localcu').click(function() {
currentFilterMode = 'localcu';
$('#filter-input-container').hide();
});
$('#btn-only').click(function() {
currentFilterMode = 'include';
$('#filter-input-container').show().focus();
});
$('#wiki-help-trigger').click(function() {
$('#wiki-list-help').toggle();
});
$('#start').click(function() {
runAudit();
});
$('#stop').click(function() {
isRunning = false;
});
}
async function findGrantDate(user, db) {
// Check manual list first
const key = user + "@" + db;
if (customGrantDates[key]) return customGrantDates[key];
// Search Meta-Wiki for steward actions (User:Name@dbname)
// We use User:Name for Meta itself, and User:Name@dbname for other wikis
const title = (db === 'metawiki') ? 'User:' + user : 'User:' + user + '@' + db;
let mPars = {
action: 'query',
list: 'logevents',
letype: 'rights',
letitle: title,
ledir: 'newer',
lelimit: 'max',
formatversion: 2
};
let resM = await robustCall(metaApi, mPars);
let logsM = (resM.query && resM.query.logevents) || [];
for (let ev of logsM) {
let p = ev.params || {};
let nG = extractGroups(p.newgroups || p.add || p[1] || p["1"]);
let oG = extractGroups(p.oldgroups || p.remove || p[0] || p["0"]);
if (nG.indexOf('checkuser') !== -1 && oG.indexOf('checkuser') === -1) {
return ev.timestamp.substring(0, 10);
}
}
return "Unknown";
}
async function runAudit() {
isRunning = true;
let wt = "";
const adminTypes = [
'block', 'delete', 'protect', 'rights', 'merge', 'abusefilter',
'contentmodel', 'import', 'managetags', 'massmessage',
'checkuser-temporary-account', 'ipinfo', 'pagelang',
'renameuser', 'stable', 'gblblock', 'abusefilter-protected-vars'
];
const cuInPublicTypes = ['abusefilterprivatedetails'];
$('#start').prop('disabled', true);
$('#stop').prop('disabled', false);
$('#status-msg').text('Waiting for queue lock...').css("color", "orange");
// Request browser lock to prevent concurrent runs
await navigator.locks.request('global_cu_list_lock', async () => {
wt = "== Global CheckUser List ==\n";
wt += "''Report generated on: " + getReportTimestamp() + "<br />\n";
wt += "Generated with [[testwiki:User:MrJaroslavik/GlobalCheckUserList.js|GlobalCheckUserList.js]]''\n";
const filterText = $('#wiki-filter').val().trim().toLowerCase();
const filterList = filterText ? filterText.split(',').map(function(s) {
return s.trim();
}).filter(function(s) {
return s !== "";
}) : [];
if (currentFilterMode === 'localcu') {
wt += "<br />''Filter applied: Wikis with local CheckUser communities''\n";
} else if (currentFilterMode === 'include' && filterList.length > 0) {
wt += "<br />''Filter applied: Only these wikis (" + filterList.join(', ') + ")''\n";
}
wt += "\n";
wt += '{| class="wikitable sortable" style="font-size:90%; width:100%;"\n' +
'! User !! CU Since !! Duration !! Last CU Action<ref>Logs: checkuserlog, checkuser-temporary-account, abusefilterprivatedetails</ref> !! ' +
'Last Admin Action<ref>Logs: ' + adminTypes.join(', ') + '</ref> !! ' +
'Last OS Action<ref>Logs: suppress</ref> !! ' +
'Last Logged Action<ref>Logs: all public logged actions</ref> !! Last Edit\n';
const allWikis = Object.keys(globalWikiMap);
let wikisToScan;
if (currentFilterMode === 'include' && filterList.length > 0) {
wikisToScan = allWikis.filter(function(w) {
return filterList.indexOf(w) !== -1;
});
} else if (currentFilterMode === 'localcu') {
wikisToScan = allWikis.filter(function(w) {
return localCUWikis.indexOf(w) !== -1;
});
} else {
wikisToScan = allWikis;
}
$('#bar').attr('max', wikisToScan.length).val(0);
for (let i = 0; i < wikisToScan.length; i++) {
if (!isRunning) break;
const db = wikisToScan[i];
$('#status-msg').text('Auditing ' + db + ' (' + (i + 1) + '/' + wikisToScan.length + ')...').css("color", "#0056b3");
try {
const wikiUrl = globalWikiMap[db];
const localApi = new mw.ForeignApi(wikiUrl + '/w/api.php');
// Find all users currently in the checkuser group
let users = [],
auDone = false,
auCont = null;
while (!auDone && isRunning) {
let auPars = {
action: 'query',
list: 'allusers',
augroup: 'checkuser',
auprop: 'groups',
aulimit: 'max',
formatversion: 2
};
if (auCont) Object.assign(auPars, auCont);
let res = await robustCall(localApi, auPars);
users = users.concat(res.query.allusers || []);
if (res.continue) auCont = res.continue;
else auDone = true;
}
if (users.length > 0) {
const iw = getInterwikiPrefix(db);
wt += '|-\n! colspan="8" style="background:#eaecf0; text-align:center;" | ' +
'[[' + iw + ':|' + db + ']] — [[' + iw + ':Special:ListUsers/checkuser|(list)]] — [[' + iw + ':Special:CheckUserLog|(log)]]\n';
for (const u of users) {
const username = u.name;
const sinceDate = await findGrantDate(username, db, localApi);
// Calculate how many days user has held rights
let days = "-";
if (sinceDate && sinceDate !== "Unknown") {
const cleanDate = sinceDate.substring(0, 10);
const diff = new Date() - new Date(cleanDate);
days = Math.floor(diff / 86400000) + "d";
}
// Check private CheckUser log
const cuLog = await robustCall(localApi, {
action: 'query',
list: 'checkuserlog',
culuser: username,
cullimit: 1,
formatversion: 2
});
let lastCU = (cuLog.query && cuLog.query.checkuserlog && cuLog.query.checkuserlog.entries && cuLog.query.checkuserlog.entries[0]) ?
cuLog.query.checkuserlog.entries[0].timestamp.substring(0, 10) : "Never";
// Fetch public log history
const allUserLogsReq = await robustCall(localApi, {
action: 'query',
list: 'logevents',
leuser: username,
lelimit: 'max',
formatversion: 2
});
const allUserLogs = (allUserLogsReq.query && allUserLogsReq.query.logevents) || [];
// Cross-check for public logs that indicate CU activity
const pubCUEvt = allUserLogs.find(function(ev) {
return cuInPublicTypes.indexOf(ev.type) !== -1;
});
if (pubCUEvt) {
const pubCUTs = pubCUEvt.timestamp.substring(0, 10);
if (lastCU === "Never" || pubCUTs > lastCU) lastCU = pubCUTs;
}
// Identify latest admin action
const admEvent = allUserLogs.find(function(ev) {
return adminTypes.indexOf(ev.type) !== -1;
});
const lastAdm = admEvent ? admEvent.timestamp.substring(0, 10) : "Never";
// Get most recent log entry of any type
const lastGen = allUserLogs.length > 0 ? allUserLogs[0].timestamp.substring(0, 10) : "Never";
// Look for Suppression actions (filtering for setstatus)
const osLog = await robustCall(localApi, {
action: 'query',
list: 'logevents',
leuser: username,
letype: 'suppress',
lelimit: 50, // Scan more entries to find setstatus
formatversion: 2
});
let lastOS = "-";
var uGroups = extractGroups(u.groups);
var hasCurrentOSGroups = (uGroups.indexOf('suppress') !== -1 || uGroups.indexOf('oversight') !== -1);
if (hasCurrentOSGroups) {
lastOS = "Never";
if (osLog.query && osLog.query.logevents) {
// Find first entry that is NOT 'setstatus'
const realOSEvent = osLog.query.logevents.find(function(e) {
// Check if params exists and if subtype is NOT setstatus
return !e.params || (e.params && e.params.subtype !== 'setstatus');
});
if (realOSEvent) {
lastOS = realOSEvent.timestamp.substring(0, 10);
}
}
}
// Check last manual edit date
const edLog = await robustCall(localApi, {
action: 'query',
list: 'usercontribs',
ucuser: username,
uclimit: 1,
formatversion: 2
});
const lastEdit = (edLog.query && edLog.query.usercontribs && edLog.query.usercontribs[0]) ? edLog.query.usercontribs[0].timestamp.substring(0, 10) : "Never";
wt += '|-\n| style="text-align:left; white-space:nowrap;" | [[' + iw + ':Special:Log/' + username + '|' + username + '@' + db + ']] || ' +
sinceDate + ' || ' + days + ' || ' + lastCU + ' || ' + lastAdm + ' || ' + lastOS + ' || ' + lastGen + ' || ' + lastEdit + '\n';
}
}
} catch (err) {
console.error('Audit failed for ' + db, err);
}
$('#bar').val(i + 1);
await sleep(DELAY_MS);
}
wt += '|}\n\n=== References ===\n<references />\n';
$('#out').val(wt);
$('#output-container').show();
$('#status-msg').text('Audit complete!').css("color", "green");
$('#start').prop('disabled', false);
$('#stop').prop('disabled', true);
});
}
setupUI();
});
})();
mvm7rb7tri6thu0kjof1wna35ida15k
739202
739198
2026-04-23T19:02:43Z
MrJaroslavik
44012
edit
739202
javascript
text/javascript
// GlobalCheckUserList.js
// -------------------------------------------------------
// Features:
// - Scans current CheckUsers across 800+ projects. With filters "only these" and "Only with local CheckUsers"
// - Checks Checks Meta and Local logs for the grant date.
// - Wikitext output in one sortable table.
// - Nicknames link to local logs; headers link to project, CheckUsers list, and CheckUserLog.
// - Shows last logged actions - CheckUser, Admin, General and if User is OS, shows last OS action
// - UI: Integrated at [[meta:Special:BlankPage/GlobalCheckUserList]].
// - Created with Gemini 3.
// -------------------------------------------------------
(function() {
'use strict';
// Run only on Special:BlankPage/GlobalCheckUserList
const isBlankPage = mw.config.get('wgCanonicalSpecialPageName') === 'Blankpage';
const isOurScript = mw.config.get('wgTitle').includes('GlobalCheckUserList');
if (!isBlankPage || !isOurScript) return;
let globalWikiMap = {};
// List of wikis where CheckUser extension is disabled - https://noc.wikimedia.org/conf/highlight.php?file=dblists/checkuser-disabled.dblist
const disabledCUWikis = [
'aawikibooks', 'abwiktionary', 'advisorywiki', 'akwiktionary', 'angwikiquote',
'angwikisource', 'astwikibooks', 'astwikiquote', 'aswikibooks', 'aswiktionary',
'avwiktionary', 'aywikibooks', 'bhwiktionary', 'biwikibooks', 'biwiktionary',
'bmwikibooks', 'bmwikiquote', 'bmwiktionary', 'bowiktionary', 'chwikibooks',
'chwiktionary', 'cnwikimedia', 'crwikiquote', 'crwiktionary', 'dzwiktionary',
'gawikibooks', 'gnwikibooks', 'gotwikibooks', 'guwikibooks', 'htwikisource',
'huwikinews', 'hzwiki', 'iewikibooks', 'iiwiki', 'internalwiki', 'kjwiki',
'kkwikiquote', 'knwikibooks', 'krwiki', 'krwikiquote', 'kswikibooks',
'kswikiquote', 'kwwikiquote', 'lbwikibooks', 'lbwikiquote', 'lnwikibooks',
'lvwikibooks', 'mhwiktionary', 'mnwikibooks', 'muswiki', 'nahwikibooks',
'nawikibooks', 'nawikiquote', 'ndswikibooks', 'ndswikiquote', 'piwiktionary',
'pswikibooks', 'quwikibooks', 'quwikiquote', 'rmwikibooks', 'rmwiktionary',
'rnwiktionary', 'scwiktionary', 'searchcomwiki', 'snwiktionary', 'spcomwiki',
'swwikibooks', 'thwikinews', 'tkwikibooks', 'tkwikiquote', 'towiktionary',
'transitionteamwiki', 'trwikinews', 'ttwikiquote', 'twwiktionary',
'ugwikibooks', 'ugwikiquote', 'vowikibooks', 'vowikiquote', 'wawikibooks',
'wikimania2005wiki', 'wikimania2006wiki', 'wikimania2007wiki',
'wikimania2009wiki', 'wikimania2015wiki', 'wowikiquote', 'xhwikibooks',
'xhwiktionary', 'yowikibooks', 'yowiktionary', 'zawikibooks', 'zawikiquote',
'zawiktionary', 'zh_min_nanwikibooks', 'zuwikibooks'
];
// Projects known that have local CheckUsers - https://meta.wikimedia.org/wiki/CheckUser_policy/Users_with_CheckUser_access
const localCUWikis = [
'arwiki', 'bnwiki', 'cawiki', 'cswiki', 'dawiki', 'nlwiki', 'enwikibooks',
'enwiki', 'enwikivoyage', 'enwiktionary', 'fiwiki', 'frwiki', 'dewiki',
'hewiki', 'huwiki', 'idwiki', 'itwiki', 'jawiki', 'kowiki', 'fawiki',
'plwiki', 'ptwiki', 'ruwiki', 'srwiki', 'simplewiki', 'slwiki', 'eswiki',
'svwiki', 'thwiki', 'trwiki', 'ukwiki', 'viwiki', 'commonswiki',
'specieswiki', 'metawiki', 'wikidatawiki'
];
// Fetch all available wikis and filter out restricted ones
function loadGlobalWikiMap() {
const api = new mw.Api();
return api.get({
action: 'sitematrix',
format: 'json',
smtype: 'language|special',
smlangprop: 'site',
smsiteprop: 'dbname|url',
formatversion: 2,
origin: '*'
}).then(function(data) {
const matrix = data.sitematrix;
const wikiMap = {};
Object.keys(matrix).forEach(function(key) {
const entry = matrix[key];
if (entry.site && Array.isArray(entry.site)) {
entry.site.forEach(function(site) {
if (site.private || site.fishbowl || disabledCUWikis.indexOf(site.dbname) !== -1) return;
wikiMap[site.dbname] = site.url;
});
}
});
if (matrix.specials && Array.isArray(matrix.specials)) {
matrix.specials.forEach(function(special) {
if (special.private || special.fishbowl || disabledCUWikis.indexOf(special.dbname) !== -1) return;
wikiMap[special.dbname] = special.url;
});
}
return wikiMap;
});
}
// Convert database names to interwiki prefixes for table links
function getInterwikiPrefix(db) {
const specialMap = {
'commonswiki': 'c', 'metawiki': 'm', 'wikidatawiki': 'd',
'wikifunctionswiki': 'f', 'mediawikiwiki': 'mw', 'specieswiki': 'species',
'sourceswiki': 'oldwikisource', 'foundationwiki': 'foundation',
'incubatorwiki': 'incubator', 'outreachwiki': 'outreach',
'betawikiversity': 'betawikiversity', 'be_x_oldwiki': 'be-tarask',
'zh_classicalwiki': 'lzh', 'zh_min_nanwiki': 'nan', 'zh_yuewiki': 'yue'
};
if (specialMap[db]) return specialMap[db];
const name = db.replace(/_/g, '-');
if (name.endsWith('wikisource')) return 's:' + name.slice(0, -10);
if (name.endsWith('wikiversity')) return 'v:' + name.slice(0, -11);
if (name.endsWith('wiktionary')) return 'wikt:' + name.slice(0, -10);
if (name.endsWith('wikivoyage')) return 'voy:' + name.slice(0, -10);
if (name.endsWith('wikibooks')) return 'b:' + name.slice(0, -9);
if (name.endsWith('wikiquote')) return 'q:' + name.slice(0, -9);
if (name.endsWith('wikinews')) return 'n:' + name.slice(0, -8);
if (name.endsWith('wikimedia')) return 'wm' + name.slice(0, -9);
if (name.endsWith('wiki')) return 'w:' + name.slice(0, -4);
return 'w:' + name;
}
// Manual overrides for missing grant dates
// Format: "Username@dbname": "YYYY-MM-DD"
const customGrantDates = {
"RiazACU@bnwiki": "2022-05-13",
"KnudW@dawiki": "2017-03-23",
"Dbeef@enwiki": "2025-03-07",
"MarcGarver@enwikibooks": "2012-03-26",
"Jake Park@eswiki": "2021-07-03",
"Nohirara@idwiki": "2016-06-03",
"Superspritz@itwiki": "2012-12-06",
"Uncitoyen@trwiki": "2020-03-31"
};
// Helper function to pause execution (useful for preventing API limits)
const DELAY_MS = 500;
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
// Makes API calls with automatic retries for "429 Too Many Requests" errors
async function robustCall(api, params) {
let retries = 0;
const maxRetries = 3;
while (retries < maxRetries) {
try {
// Attempt to fetch data from the MediaWiki API
return await api.get(params);
} catch (err) {
// Check if the server is actively rejecting requests due to high load (HTTP 429)
// Note: Optional chaining (?.) is avoided for broad MediaWiki editor compatibility
if (err && err.status === 429) {
retries++;
// Read the 'Retry-After' header provided by the server, or default to a scaling wait time
const waitTime = parseInt(err.xhr && err.xhr.getResponseHeader('Retry-After')) || (30 * retries);
// Notify the user via the UI that the script is pausing (supports both UI container types)
$('#status-msg, #cu-loader').html(
`<span style="color:orange; font-weight:bold;">Server is busy! Pausing for ${waitTime} seconds...</span>`
).show();
// Pause execution for the requested duration before trying again
await sleep(waitTime * 1000);
} else {
// If it is a different error (network failure, 500 Internal Error, etc.), stop and throw
throw err;
}
}
}
// Fail completely if max retries are exceeded
throw new Error("Failed to reach API after multiple attempts due to server limits.");
}
// Returns a standardized UTC timestamp for report headers (YYYY-MM-DD HH:MM)
function getReportTimestamp() {
return new Date().toISOString().replace('T', ' ').substring(0, 16) + ' (UTC)';
}
// Process various API response formats into a clean array of group names
const extractGroups = function(data) {
if (!data) return [];
var res = [];
if (Array.isArray(data)) {
res = data;
} else if (typeof data === 'object') {
res = Object.values(data);
} else if (typeof data === 'string') {
res = data.split(',').map(function(s) {
return s.trim();
});
}
return res.map(function(g) {
if (typeof g !== 'string') return g;
return g.replace(/\s+/g, '').toLowerCase();
});
};
mw.loader.using(['mediawiki.api', 'mediawiki.ForeignApi']).then(async function() {
$('#mw-content-text').html('<strong>GlobalCheckUserList.js: Mapping wikis...</strong>');
globalWikiMap = await loadGlobalWikiMap();
const metaApi = new mw.ForeignApi('https://meta.wikimedia.org/w/api.php');
let isRunning = false;
let currentFilterMode = 'all';
function setupUI() {
$('#firstHeading').text('GlobalCheckUserList');
$('#mw-content-text').empty().append(`
<div style="border:1px solid #a2a9b1; padding:15px; background:#f8f9fa;">
<p>Audits current CheckUsers across Wikimedia projects. Reports are grouped into one single table.</p>
<div style="margin-bottom:10px; display:flex; align-items:center; gap:20px; font-size:13px;">
<strong>Wiki Filter:</strong>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-all" checked> All</label>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-localcu"> Local CU Wikis</label>
<label style="cursor:pointer;"><input type="radio" name="w-mode" id="btn-only"> Only these</label>
<span id="wiki-help-trigger" style="cursor:help; background:#36c; color:#fff; border-radius:50%; width:18px; height:18px; display:inline-block; text-align:center; font-weight:bold;" title="Show available DB names">?</span>
</div>
<div id="filter-input-container" style="display:none; margin-bottom:15px;">
<input id="wiki-filter" type="text" style="width:100%;" placeholder="dbname1, dbname2...">
</div>
<div id="wiki-list-help" style="display:none; margin-bottom:10px; padding:10px; background:#fff; border:1px solid #a2a9b1; font-size:11px; max-height:120px; overflow-y:auto; font-family:monospace;">
<strong>Available database names:</strong><br>${Object.keys(globalWikiMap).sort().join(', ')}
</div>
<div style="margin-top:20px;">
<button id="start" class="mw-ui-button mw-ui-progressive">Run Audit</button>
<button id="stop" class="mw-ui-button mw-ui-destructive" disabled>Stop</button>
</div>
<div id="status-msg" style="margin-top:10px; font-weight:bold; color:#0056b3;">Ready.</div>
<div style="margin-top:5px;">
<progress id="bar" value="0" max="${Object.keys(globalWikiMap).length}" style="width:100%"></progress>
</div>
<div id="output-container" style="display:none; margin-top:15px;">
<strong>Wikitext Report:</strong>
<textarea id="out" style="width:100%; height:450px; font-family:monospace; font-size:11px; padding:5px; border:1px solid #c8ccd1;"></textarea>
</div>
</div>
`);
$('#btn-all').click(function() {
currentFilterMode = 'all';
$('#filter-input-container').hide();
});
$('#btn-localcu').click(function() {
currentFilterMode = 'localcu';
$('#filter-input-container').hide();
});
$('#btn-only').click(function() {
currentFilterMode = 'include';
$('#filter-input-container').show().focus();
});
$('#wiki-help-trigger').click(function() {
$('#wiki-list-help').toggle();
});
$('#start').click(function() {
runAudit();
});
$('#stop').click(function() {
isRunning = false;
});
}
async function findGrantDate(user, db) {
// Check manual list first
const key = user + "@" + db;
if (customGrantDates[key]) return customGrantDates[key];
// Search Meta-Wiki for steward actions (User:Name@dbname)
// We use User:Name for Meta itself, and User:Name@dbname for other wikis
const title = (db === 'metawiki') ? 'User:' + user : 'User:' + user + '@' + db;
let mPars = {
action: 'query',
list: 'logevents',
letype: 'rights',
letitle: title,
ledir: 'newer',
lelimit: 'max',
formatversion: 2
};
let resM = await robustCall(metaApi, mPars);
let logsM = (resM.query && resM.query.logevents) || [];
for (let ev of logsM) {
let p = ev.params || {};
let nG = extractGroups(p.newgroups || p.add || p[1] || p["1"]);
let oG = extractGroups(p.oldgroups || p.remove || p[0] || p["0"]);
if (nG.indexOf('checkuser') !== -1 && oG.indexOf('checkuser') === -1) {
return ev.timestamp.substring(0, 10);
}
}
return "Unknown";
}
async function runAudit() {
isRunning = true;
let wt = "";
const adminTypes = [
'block', 'delete', 'protect', 'rights', 'merge', 'abusefilter',
'contentmodel', 'import', 'managetags', 'massmessage',
'checkuser-temporary-account', 'ipinfo', 'pagelang',
'renameuser', 'stable', 'gblblock', 'abusefilter-protected-vars'
];
const cuInPublicTypes = ['abusefilterprivatedetails'];
$('#start').prop('disabled', true);
$('#stop').prop('disabled', false);
$('#status-msg').text('Waiting for queue lock...').css("color", "orange");
// Request browser lock to prevent concurrent runs
await navigator.locks.request('global_cu_list_lock', async () => {
wt = "== Global CheckUser List ==\n";
wt += "''Report generated on: " + getReportTimestamp() + "<br />\n";
wt += "Generated with [[testwiki:User:MrJaroslavik/GlobalCheckUserList.js|GlobalCheckUserList.js]]''\n";
const filterText = $('#wiki-filter').val().trim().toLowerCase();
const filterList = filterText ? filterText.split(',').map(function(s) {
return s.trim();
}).filter(function(s) {
return s !== "";
}) : [];
if (currentFilterMode === 'localcu') {
wt += "<br />''Filter applied: Wikis with local CheckUsers''<ref>[[meta:CheckUser policy/Users with CheckUser access]]</ref>\n";
} else if (currentFilterMode === 'include' && filterList.length > 0) {
wt += "<br />''Filter applied: Only these wikis (" + filterList.join(', ') + ")''\n";
}
wt += "\n";
wt += '{| class="wikitable sortable" style="font-size:90%; width:100%;"\n' +
'! User !! CU Since !! Duration !! Last CU Action<ref>Logs: checkuserlog, checkuser-temporary-account, abusefilterprivatedetails</ref> !! ' +
'Last Admin Action<ref>Logs: ' + adminTypes.join(', ') + '</ref> !! ' +
'Last OS Action<ref>Logs: suppress</ref> !! ' +
'Last Logged Action<ref>Logs: all public logged actions</ref> !! Last Edit\n';
const allWikis = Object.keys(globalWikiMap);
let wikisToScan;
if (currentFilterMode === 'include' && filterList.length > 0) {
wikisToScan = allWikis.filter(function(w) {
return filterList.indexOf(w) !== -1;
});
} else if (currentFilterMode === 'localcu') {
wikisToScan = allWikis.filter(function(w) {
return localCUWikis.indexOf(w) !== -1;
});
} else {
wikisToScan = allWikis;
}
$('#bar').attr('max', wikisToScan.length).val(0);
for (let i = 0; i < wikisToScan.length; i++) {
if (!isRunning) break;
const db = wikisToScan[i];
$('#status-msg').text('Auditing ' + db + ' (' + (i + 1) + '/' + wikisToScan.length + ')...').css("color", "#0056b3");
try {
const wikiUrl = globalWikiMap[db];
const localApi = new mw.ForeignApi(wikiUrl + '/w/api.php');
// Find all users currently in the checkuser group
let users = [],
auDone = false,
auCont = null;
while (!auDone && isRunning) {
let auPars = {
action: 'query',
list: 'allusers',
augroup: 'checkuser',
auprop: 'groups',
aulimit: 'max',
formatversion: 2
};
if (auCont) Object.assign(auPars, auCont);
let res = await robustCall(localApi, auPars);
users = users.concat(res.query.allusers || []);
if (res.continue) auCont = res.continue;
else auDone = true;
}
if (users.length > 0) {
const iw = getInterwikiPrefix(db);
wt += '|-\n! colspan="8" style="background:#eaecf0; text-align:center;" | ' +
'[[' + iw + ':|' + db + ']] — [[' + iw + ':Special:ListUsers/checkuser|(list)]] — [[' + iw + ':Special:CheckUserLog|(log)]]\n';
for (const u of users) {
const username = u.name;
const sinceDate = await findGrantDate(username, db, localApi);
// Calculate how many days user has held rights
let days = "-";
if (sinceDate && sinceDate !== "Unknown") {
const cleanDate = sinceDate.substring(0, 10);
const diff = new Date() - new Date(cleanDate);
days = Math.floor(diff / 86400000) + "d";
}
// Check private CheckUser log
const cuLog = await robustCall(localApi, {
action: 'query',
list: 'checkuserlog',
culuser: username,
cullimit: 1,
formatversion: 2
});
let lastCU = (cuLog.query && cuLog.query.checkuserlog && cuLog.query.checkuserlog.entries && cuLog.query.checkuserlog.entries[0]) ?
cuLog.query.checkuserlog.entries[0].timestamp.substring(0, 10) : "Never";
// Fetch public log history
const allUserLogsReq = await robustCall(localApi, {
action: 'query',
list: 'logevents',
leuser: username,
lelimit: 'max',
formatversion: 2
});
const allUserLogs = (allUserLogsReq.query && allUserLogsReq.query.logevents) || [];
// Cross-check for public logs that indicate CU activity
const pubCUEvt = allUserLogs.find(function(ev) {
return cuInPublicTypes.indexOf(ev.type) !== -1;
});
if (pubCUEvt) {
const pubCUTs = pubCUEvt.timestamp.substring(0, 10);
if (lastCU === "Never" || pubCUTs > lastCU) lastCU = pubCUTs;
}
// Identify latest admin action
const admEvent = allUserLogs.find(function(ev) {
return adminTypes.indexOf(ev.type) !== -1;
});
const lastAdm = admEvent ? admEvent.timestamp.substring(0, 10) : "Never";
// Get most recent log entry of any type
const lastGen = allUserLogs.length > 0 ? allUserLogs[0].timestamp.substring(0, 10) : "Never";
// Look for Suppression actions (filtering for setstatus)
const osLog = await robustCall(localApi, {
action: 'query',
list: 'logevents',
leuser: username,
letype: 'suppress',
lelimit: 50, // Scan more entries to find setstatus
formatversion: 2
});
let lastOS = "-";
var uGroups = extractGroups(u.groups);
var hasCurrentOSGroups = (uGroups.indexOf('suppress') !== -1 || uGroups.indexOf('oversight') !== -1);
if (hasCurrentOSGroups) {
lastOS = "Never";
if (osLog.query && osLog.query.logevents) {
// Find first entry that is NOT 'setstatus'
const realOSEvent = osLog.query.logevents.find(function(e) {
// Check if params exists and if subtype is NOT setstatus
return !e.params || (e.params && e.params.subtype !== 'setstatus');
});
if (realOSEvent) {
lastOS = realOSEvent.timestamp.substring(0, 10);
}
}
}
// Check last manual edit date
const edLog = await robustCall(localApi, {
action: 'query',
list: 'usercontribs',
ucuser: username,
uclimit: 1,
formatversion: 2
});
const lastEdit = (edLog.query && edLog.query.usercontribs && edLog.query.usercontribs[0]) ? edLog.query.usercontribs[0].timestamp.substring(0, 10) : "Never";
wt += '|-\n| style="text-align:left; white-space:nowrap;" | [[' + iw + ':Special:Log/' + username + '|' + username + '@' + db + ']] || ' +
sinceDate + ' || ' + days + ' || ' + lastCU + ' || ' + lastAdm + ' || ' + lastOS + ' || ' + lastGen + ' || ' + lastEdit + '\n';
}
}
} catch (err) {
console.error('Audit failed for ' + db, err);
}
$('#bar').val(i + 1);
await sleep(DELAY_MS);
}
wt += '|}\n\n=== References ===\n<references />\n';
$('#out').val(wt);
$('#output-container').show();
$('#status-msg').text('Audit complete!').css("color", "green");
$('#start').prop('disabled', false);
$('#stop').prop('disabled', true);
});
}
setupUI();
});
})();
i3eb4wc30v6vno997e3iybb62tzkm9i
Category:VH1 Video Music Awards
14
174997
739179
2026-04-23T14:16:35Z
~2026-24923-82
73678
Created page with "{{Cat main|VH1 Video Music Awards}} {{Commons category|VH1 Video Music Awards}} {{DEFAULTSORT:Vh1 Video Music Awards}} [[Category:VH1]] [[Category:American music video awards]] [[Category:Wikipedia categories named after American awards]]"
739179
wikitext
text/x-wiki
{{Cat main|VH1 Video Music Awards}}
{{Commons category|VH1 Video Music Awards}}
{{DEFAULTSORT:Vh1 Video Music Awards}}
[[Category:VH1]]
[[Category:American music video awards]]
[[Category:Wikipedia categories named after American awards]]
kksqwiz06syj9e09jxzruackz3orqwl
Wikipedia:Lexis/Lexis.Dict.Private.ECIMK-X8BGI
4
174999
739204
2026-04-23T19:39:32Z
Plantaest
37055
Tạo từ điển Lexis.Dict.Private.ECIMK-X8BGI [#Lexis]
739204
json
application/json
{
"id": "Lexis.Dict.Private.ECIMK-X8BGI",
"creator": {
"id": 37055,
"name": "Plantaest"
},
"contributors": [
{
"id": 37055,
"name": "Plantaest"
}
],
"createdAt": "2026-04-23T19:39:32Z",
"updatedAt": "2026-04-23T19:39:32Z",
"type": "private",
"name": "Hello",
"englishName": "Hello",
"sourceLanguage": "en",
"targetLanguage": "vi"
}
g93vv7qkxhurfvny1u1jskpkb89ekeg
Wikipedia:Lexis/Lexis.Dict.Private.DQHZB-AZI9L
4
175000
739206
2026-04-23T19:52:24Z
Plantaest
37055
Tạo từ điển Lexis.Dict.Private.DQHZB-AZI9L [#Lexis]
739206
json
application/json
{
"id": "Lexis.Dict.Private.DQHZB-AZI9L",
"creator": {
"id": 37055,
"name": "Plantaest"
},
"contributors": [
{
"id": 37055,
"name": "Plantaest"
}
],
"createdAt": "2026-04-23T19:52:24Z",
"updatedAt": "2026-04-23T19:52:24Z",
"type": "private",
"name": "X",
"englishName": "X",
"sourceLanguage": "en",
"targetLanguage": "vi"
}
3nh9rl1xxs9xsiwt3dpyb1qxk67i0q2
Wikipedia:Lexis/Lexis.Dict.Private.HNKPO-AZHDR
4
175001
739208
2026-04-23T20:13:58Z
Plantaest
37055
Tạo từ điển Lexis.Dict.Private.HNKPO-AZHDR [#Lexis]
739208
json
application/json
{
"id": "Lexis.Dict.Private.HNKPO-AZHDR",
"creator": {
"id": 37055,
"name": "Plantaest"
},
"contributors": [
{
"id": 37055,
"name": "Plantaest"
}
],
"createdAt": "2026-04-23T20:13:57Z",
"updatedAt": "2026-04-23T20:13:57Z",
"type": "private",
"name": "Từ điển Sinh học Anh–Việt",
"englishName": "English–Vietnamese Biology Dictionary",
"sourceLanguage": "en",
"targetLanguage": "vi"
}
pcsw4enhc29t877j7ur4tz5g0v225fu
User:Robertsky/ESEAPConf2026-scehdule.json
2
175002
739209
2026-04-23T21:02:23Z
Robertsky
51025
Created page with "{ "meta": { "generated_at_utc": "2026-04-23T21:01:21.123488+00:00", "source_url": "https://wikimedia.eventyay.com/eseap/eseapcon/schedule/export/schedule.xml", "schema_version": 1 }, "conference": { "title": "ESEAPCon 2026", "acronym": "eseapcon", "start": "2026-05-15T09:00:00+08:00", "end": "2026-05-17T17:00:00+08:00", "days": "3", "timeslot_duration": "00:05", "base_url": "https://wikimedia.eventyay.com/", "time_zone_na..."
739209
json
application/json
{
"meta": {
"generated_at_utc": "2026-04-23T21:01:21.123488+00:00",
"source_url": "https://wikimedia.eventyay.com/eseap/eseapcon/schedule/export/schedule.xml",
"schema_version": 1
},
"conference": {
"title": "ESEAPCon 2026",
"acronym": "eseapcon",
"start": "2026-05-15T09:00:00+08:00",
"end": "2026-05-17T17:00:00+08:00",
"days": "3",
"timeslot_duration": "00:05",
"base_url": "https://wikimedia.eventyay.com/",
"time_zone_name": "Asia/Taipei",
"tracks": [
{
"name": "Community Story",
"slug": "1-community-story",
"color": "#ff7800"
},
{
"name": "Capacity Building",
"slug": "2-capacity-building",
"color": "#01647d"
},
{
"name": "Open Data \u0026 Wikidata",
"slug": "3-open-data-wikidata",
"color": "#2c00ff"
},
{
"name": "Technology",
"slug": "4-technology",
"color": "#6a038d"
},
{
"name": "Diversity \u0026 Inclusion",
"slug": "5-diversity-inclusion",
"color": "#ff0056"
},
{
"name": "Legal \u0026 Advocacy",
"slug": "6-legal-advocacy",
"color": "#95a002"
},
{
"name": "Governance",
"slug": "7-governance",
"color": "#838842"
},
{
"name": "Outreach \u0026 Partnership",
"slug": "8-outreach-partnership",
"color": "#065091"
},
{
"name": "Knowledge Equity \u0026 Representation",
"slug": "9-knowledge-equity-representation",
"color": "#603890"
},
{
"name": "Wild Ideas \u0026 Other",
"slug": "10-wild-ideas-other",
"color": "#7c4b23"
},
{
"name": "ESEAP Hub",
"slug": "25-eseap-hub",
"color": "#358940"
}
]
},
"days": [
{
"index": "1",
"date": "2026-05-15",
"start": "2026-05-15T04:00:00+08:00",
"end": "2026-05-16T03:59:00+08:00",
"day_label": "day-1",
"rooms": [
{
"name": "Main room",
"guid": "7c04481c-096d-589d-8f04-632d682d5957",
"events": [
{
"guid": "b9bb5b58-0208-5c52-8978-f9906a089b20",
"id": "852",
"room": "Main room",
"title": "Opening Ceremony",
"subtitle": "",
"type": "Conference activity",
"date": "2026-05-15T09:00:00+08:00",
"start": "09:00",
"duration": "01:00",
"abstract": "Opening ceremony of the conference",
"slug": "eseapcon-852-opening-ceremony",
"track": "",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/NTXNZV/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/NTXNZV/feedback/",
"logo": "",
"persons": [
{
"id": "3455",
"name": "Reke"
}
],
"person_names": [
"Reke"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Main_room-852"
},
{
"guid": "e6b7d9ea-06fe-58cf-ae14-f36f192704c1",
"id": "38",
"room": "Main room",
"title": "Organizing Wiki Loves Ramadan campaign in ESEAP region",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-15T10:00:00+08:00",
"start": "10:00",
"duration": "00:30",
"abstract": "Wiki Loves Ramadan 2025 is an annual global contest aimed at documenting and sharing the diverse customs and traditions observed during the month of Ramadan. The vision of WikiLovesRamadan is to build a comprehensive and multilingual repository of knowledge about Ramadan, showcasing the diversity of its observances across the world. This effort aims to enhance cultural understanding, foster pride in local traditions, and strengthen the representation of Islamic communities on Wikimedia platforms.",
"slug": "eseapcon-38-organizing-wiki-loves-ramadan-campaign-in-eseap-region",
"track": "Community Story",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/CLMDUY/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/CLMDUY/feedback/",
"logo": "",
"persons": [
{
"id": "52",
"name": "Arcuscloud"
},
{
"id": "51",
"name": "Zahirul Nukman"
}
],
"person_names": [
"Arcuscloud",
"Zahirul Nukman"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Main_room-38"
},
{
"guid": "9f93b3c8-9379-516f-941f-7cfe5453fc98",
"id": "112",
"room": "Main room",
"title": "How can a medium-sized project like Vietnamese Wikipedia operate with a small administrative team?",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-15T10:45:00+08:00",
"start": "10:45",
"duration": "00:15",
"abstract": "This is a short presentation intended to outline several aspects of the Vietnamese Wikipedia project, such as statistical data, the state of the community, solutions to help the project operate stably despite limited manpower, and more.",
"slug": "eseapcon-112-how-can-a-medium-sized-project-like-vietnamese-wikipedia-operate-with-a-small-administrative-team",
"track": "Governance",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/L8GRH9/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/L8GRH9/feedback/",
"logo": "/media/eseapcon/submissions/L8GRH9/How_can_a_medium-sized_pro_B4CLlRf.png",
"persons": [
{
"id": "110",
"name": "Plantaest"
}
],
"person_names": [
"Plantaest"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Main_room-112"
},
{
"guid": "ec2c9a86-eb9d-5793-9249-f00d7a0b40c9",
"id": "42",
"room": "Main room",
"title": "Wikivault, AI based translation tool - and it's impact to the wikimedia community",
"subtitle": "",
"type": "Panel discussion",
"date": "2026-05-15T11:00:00+08:00",
"start": "11:00",
"duration": "00:30",
"abstract": "Recently, with the development of AI technology, the Wikimedia movement has reached a turning point. A developer in the Korean Wikimedia community has developed a wiki-friendly AI translation tool called WikiVault based on Gemini. We will discuss and discover about how this tool changed the Korean community and how we (Korean community) feel about it.",
"slug": "eseapcon-42-wikivault-ai-based-translation-tool-and-it-s-impact-to-the-wikimedia-community",
"track": "Technology",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/AXG3KB/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/AXG3KB/feedback/",
"logo": "",
"persons": [
{
"id": "56",
"name": "Youngjin Ko"
}
],
"person_names": [
"Youngjin Ko"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Main_room-42"
},
{
"guid": "cc748410-662e-573c-aab1-bffcb03f5651",
"id": "78",
"room": "Main room",
"title": "Global Trends Impacting the Wikimedia Movement",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-15T13:30:00+08:00",
"start": "13:30",
"duration": "01:00",
"abstract": "Join Foundation staff, leadership, and trustees for an open workshop about global trends impacting the Wikimedia movement. This workshop is part of continuous conversations aimed at improving coordination across the movement and feeding the Foundation's annual planning process.",
"slug": "eseapcon-78-global-trends-impacting-the-wikimedia-movement",
"track": "Governance",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/WGT9AQ/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/WGT9AQ/feedback/",
"logo": "",
"persons": [
{
"id": "64",
"name": "Ivonne"
}
],
"person_names": [
"Ivonne"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Main_room-78"
},
{
"guid": "2c9e1b1b-32c9-5e1b-9c1d-bbec3a55ffdf",
"id": "74",
"room": "Main room",
"title": "Membentuk Masa Depan Pendidikan Terbuka: Navigasi Hambatan Hukum untuk Akses Inklusif",
"subtitle": "",
"type": "Panel discussion",
"date": "2026-05-15T14:30:00+08:00",
"start": "14:30",
"duration": "00:45",
"abstract": "In an era of rapid digitalization, access to quality education remains a fundamental human right, yet it often stays out of reach due to complex systemic and legal barriers. This session examines the critical intersection of legal advocacy and open knowledge ecosystems in Indonesia. It addresses how restrictive copyright frameworks and the lack of robust Open Educational Resource (OER) policies hinder inclusive learning for marginalized communities. By analyzing strategic advocacy for the right to information, this proposal provides a roadmap for navigating legal challenges to secure equitable access. The session offers actionable lessons for the ESEAP region, demonstrating how unified legal frameworks can transform educational paradigms. Ultimately, it invites participants to pioneer a future where knowledge is a universally accessible public good, protected through proactive policy reform and regional cooperation. This session is designed for those interested in bridging the gap between law, technology, and social equity.",
"slug": "eseapcon-74-membentuk-masa-depan-pendidikan-terbuka-navigasi-hambatan-hukum-untuk-akses-inklusif",
"track": "Legal \u0026 Advocacy",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/RD7TZA/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/RD7TZA/feedback/",
"logo": "",
"persons": [
{
"id": "77",
"name": "Ipop Abdi Prabowo"
}
],
"person_names": [
"Ipop Abdi Prabowo"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Main_room-74"
},
{
"guid": "f73f1527-07d4-545b-80f5-a8cacc150541",
"id": "142",
"room": "Main room",
"title": "Wiki's visual design looks a bit dull. Let's talk on fixing it!",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-15T15:30:00+08:00",
"start": "15:30",
"duration": "01:00",
"abstract": "While we seek to encourage new users on Wikimedia projects, we sometimes forget that some Wikimedia projects do not visually look the best for newcomers. As much as we value minimalism, over-minimalising can lead to lack of focus and, ironically, overstimulation because everything looks the same. Are there Wikimedia projects that could benefit from certain improvements? How shall we rework the design without making it too complicated? What are the limits that we can push to bring more for our community? Let's discuss this together in this roundtable session and come up with some implementable proposals.",
"slug": "eseapcon-142-wiki-s-visual-design-looks-a-bit-dull-let-s-talk-on-fixing-it",
"track": "Wild Ideas \u0026 Other",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/B7Y3PM/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/B7Y3PM/feedback/",
"logo": "",
"persons": [
{
"id": "86",
"name": "Ahmad Ali Karim"
},
{
"id": "48",
"name": "Farouk Azim"
}
],
"person_names": [
"Ahmad Ali Karim",
"Farouk Azim"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Main_room-142"
},
{
"guid": "d35cdad7-738c-5e73-a2c0-cea9bcc53fb1",
"id": "3",
"room": "Main room",
"title": "Inside the VRT (Volunteer Response Team): Demystifying Copyright Review and Joining the Frontline of Wikimedia (走進 VRT:揭開著作權審核的神秘面紗,加入維基媒體的第一線)",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-15T16:30:00+08:00",
"start": "16:30",
"duration": "00:30",
"abstract": "The Volunteer Response Team (VRT) handles Wikimedia's inquiries and copyright reviews. This session explores VRT operations, common licensing pitfalls, and best practices for donating works. Join us on the frontline!\nVRT (志工回覆團隊) 負責維基媒體的資訊諮詢與著作權審核。本演講將帶您走進 VRT,解析常見授權陷阱(如無效的截圖授權),並分享正確捐贈作品至維基百科的指南。誠摯邀請您加入我們第一線的行列!",
"slug": "eseapcon-3-inside-the-vrt-volunteer-response-team-demystifying-copyright-review-and-joining-the-frontline-of-wikimedia--vrt",
"track": "Legal \u0026 Advocacy",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/UAF8RA/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/UAF8RA/feedback/",
"logo": "/media/eseapcon/submissions/UAF8RA/Inside_the_VRT__Demystifyi_derSEfz.png",
"persons": [
{
"id": "20",
"name": "Justo Jhang (Taiwania Justo)"
}
],
"person_names": [
"Justo Jhang (Taiwania Justo)"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Main_room-3"
}
]
},
{
"name": "Room 1 - Workshop",
"guid": "6f20d8d1-8fc4-5621-8803-05cd5bae1def",
"events": [
{
"guid": "3a0c565a-e912-512b-892b-0f0e29f21cb6",
"id": "86",
"room": "Room 1 - Workshop",
"title": "How we're teaching Wiki projects in a university course",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-15T10:00:00+08:00",
"start": "10:00",
"duration": "00:30",
"abstract": "Education is core to the Wikimedia movement, yet most academic institutions consider Wikimedia incompatible or too unreliable for the academia. Despite this, one university has invited Wikimedia CUG Malaysia to instruct two classes for a course on community engagement and sustainability. Through this course, students not only learn Wikimedia projects themselves but also learn to teach and train others on using platforms such as Wikimedia Commons and Wiktionary to preserve knowledge and culture.",
"slug": "eseapcon-86-how-we-re-teaching-wiki-projects-in-a-university-course",
"track": "Community Story",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/DHFDW7/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/DHFDW7/feedback/",
"logo": "",
"persons": [
{
"id": "86",
"name": "Ahmad Ali Karim"
},
{
"id": "48",
"name": "Farouk Azim"
}
],
"person_names": [
"Ahmad Ali Karim",
"Farouk Azim"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_1_-_Workshop-86"
},
{
"guid": "ccb763d7-c484-55a2-b3d9-78f4b437322f",
"id": "16",
"room": "Room 1 - Workshop",
"title": "Strengthening EduWiki Participation in ESEAP: Pathways for Collaboration, Support, and Growth",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-15T10:45:00+08:00",
"start": "10:45",
"duration": "00:45",
"abstract": "The EduWiki Hub supports Wikimedians and educators around the world in advancing open knowledge in education. However, participation from the ESEAP region has remained relatively low across our working groups; particularly in the Outreach \u0026 Engagement and Capacity Building groups, which are essential for strengthening Wiki-education programs and initiatives in the region.\nThis session will share insights from the Hub’s work and highlight opportunities designed for communities, including those in ESEAP. We will explore practical ways affiliates, educators, and volunteers in the region can connect with our activities and programmes. Participants will learn about our current work, why it matters for the ESEAP context, how to access support from the EduWiki Hub, and how to take part in our showcases, workshops, Wikimedia-and-education stories, knowledge-sharing events, and cross-border collaborations.\nThe session will also include an open discussion to better understand local needs and identify meaningful entry points for deeper engagement with the EduWiki Hub.",
"slug": "eseapcon-16-strengthening-eduwiki-participation-in-eseap-pathways-for-collaboration-support-and-growth",
"track": "Outreach \u0026 Partnership",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/MGKRNF/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/MGKRNF/feedback/",
"logo": "",
"persons": [
{
"id": "32",
"name": "BJames (EdWH)"
},
{
"id": "3151",
"name": "Rita Maliqi"
}
],
"person_names": [
"BJames (EdWH)",
"Rita Maliqi"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_1_-_Workshop-16"
},
{
"guid": "427fa27c-a895-5b94-8d6d-438968dd7435",
"id": "75",
"room": "Room 1 - Workshop",
"title": "日本のWikimedia movementはなぜ個人が主体となったのか",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-15T13:30:00+08:00",
"start": "13:30",
"duration": "01:00",
"abstract": "日本語版Wikipediaができたのは2001年5月と英語版とほぼ同じ程度の時期に創立されましたが、長らく個人での活動が主体となり、コミュニティ活動として組織化された団体の活動は続かず、2023年にWikimedians of Japan User Groupが設立されるまで提携団体は存在しませんでした。原因は日本語圏で/日本国内で活動するウィキメディアンにコミュニティ活動をする組織を立ち上げる動機が存在しなかったためですが、ではなぜ動機が存在しなかったのかという点について、日本国内で活動するウィキメディアンの意識や、Wikimedians of Japan User Groupの立ち上げにかかわった方などと明らかにしたいと思います。",
"slug": "eseapcon-75-wikimedia-movement",
"track": "Community Story",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/EBATCZ/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/EBATCZ/feedback/",
"logo": "",
"persons": [
{
"id": "78",
"name": "VZP10224(Masaki Murakami)"
}
],
"person_names": [
"VZP10224(Masaki Murakami)"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_1_-_Workshop-75"
},
{
"guid": "b41f8355-1d42-52c0-9d31-2a1a802e59b4",
"id": "72",
"room": "Room 1 - Workshop",
"title": "Generating citations for Citoid",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-15T14:30:00+08:00",
"start": "14:30",
"duration": "00:45",
"abstract": "A hands on approach on generating citations of your regularly used news sites for Citoid through Zotero translators",
"slug": "eseapcon-72-generating-citations-for-citoid",
"track": "Technology",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/KCR737/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/KCR737/feedback/",
"logo": "",
"persons": [
{
"id": "70",
"name": "Robert Sim"
}
],
"person_names": [
"Robert Sim"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_1_-_Workshop-72"
},
{
"guid": "d5bc85aa-82ea-5d4f-aea5-cc142b7cc114",
"id": "41",
"room": "Room 1 - Workshop",
"title": "International collaboration for the Yokohama Editathon",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-15T15:30:00+08:00",
"start": "15:30",
"duration": "00:30",
"abstract": "At the Yokohama Editathon, held online in 2025, I received cooperation from many more Wikimedians than I had initially anticipated, including from Malaysia, South Korea, and the Philippines. I will report on the details and results of this cooperation together with the Wikipedians who contributed.",
"slug": "eseapcon-41-international-collaboration-for-the-yokohama-editathon",
"track": "Community Story",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/XVFLQU/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/XVFLQU/feedback/",
"logo": "/media/eseapcon/submissions/XVFLQU/256px-Wikimedia_World_logo_mYCoCTR.png",
"persons": [
{
"id": "65",
"name": "Aspere"
},
{
"id": "55",
"name": "Yuriko Kadokura"
},
{
"id": "3389",
"name": "Ernest Dwayne Victoriano Malsin"
},
{
"id": "92",
"name": "Tofeiku"
}
],
"person_names": [
"Aspere",
"Yuriko Kadokura",
"Ernest Dwayne Victoriano Malsin",
"Tofeiku"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_1_-_Workshop-41"
},
{
"guid": "8e31c71f-a4c6-5dac-8725-073400897ac7",
"id": "136",
"room": "Room 1 - Workshop",
"title": "The collaboration and prospects of the ESEAP community within Wikipedia Asian Month",
"subtitle": "",
"type": "Panel discussion",
"date": "2026-05-15T16:00:00+08:00",
"start": "16:00",
"duration": "01:00",
"abstract": "A discussion focused on inviting WAM organizers and participants to share their insights, gathering feedback from both sides, and promoting international cooperation through friendly matches.",
"slug": "eseapcon-136-the-collaboration-and-prospects-of-the-eseap-community-within-wikipedia-asian-month",
"track": "Outreach \u0026 Partnership",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/7EKDB9/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/7EKDB9/feedback/",
"logo": "",
"persons": [
{
"id": "72",
"name": "Betty"
}
],
"person_names": [
"Betty"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_1_-_Workshop-136"
}
]
},
{
"name": "Room 2 - Women/Youth/ESEAP Hub",
"guid": "b7c77ed5-fc73-5425-b3b0-41c58cc7357a",
"events": [
{
"guid": "2854aa05-4603-5c35-9ca6-04e990496f60",
"id": "863",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Wiki Women Summit Icebreaker and Introductions",
"subtitle": "",
"type": "Conference activity",
"date": "2026-05-15T10:00:00+08:00",
"start": "10:00",
"duration": "00:30",
"abstract": "Let's start the day getting to know each other!",
"slug": "eseapcon-863-wiki-women-summit-icebreaker-and-introductions",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/FPWESV/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/FPWESV/feedback/",
"logo": "",
"persons": [],
"person_names": [],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_2_-_Women/Youth/ESEAP_Hub-863"
},
{
"guid": "2e6e5f1b-41dd-54f4-b65c-15a501dfd101",
"id": "102",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "ESEAP Community strategies and advocacy for women in Wikimedia: Roundtable and Panel",
"subtitle": "",
"type": "Panel discussion",
"date": "2026-05-15T10:45:00+08:00",
"start": "10:45",
"duration": "01:15",
"abstract": "This session features presentations and a roundtable discussion to share experiences and community building strategies for supporting women's participation and representation in the Wikimedia movement across the ESEAP region.",
"slug": "eseapcon-102-eseap-community-strategies-and-advocacy-for-women-in-wikimedia-roundtable-and-panel",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/DGZT88/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/DGZT88/feedback/",
"logo": "",
"persons": [
{
"id": "33",
"name": "Amanda Lawrence"
},
{
"id": "2362",
"name": "Belinda Spry"
},
{
"id": "101",
"name": "Rafaah"
},
{
"id": "99",
"name": "Winnie Chen"
},
{
"id": "73",
"name": "Ann Chen"
},
{
"id": "84",
"name": "Tri Astari"
}
],
"person_names": [
"Amanda Lawrence",
"Belinda Spry",
"Rafaah",
"Winnie Chen",
"Ann Chen",
"Tri Astari"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_2_-_Women/Youth/ESEAP_Hub-102"
},
{
"guid": "281bb2a0-a9b0-5096-ba0f-3042fb6d1fd4",
"id": "103",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Digital rights, Technology and Gender Panel and Discussion",
"subtitle": "",
"type": "Panel discussion",
"date": "2026-05-15T13:30:00+08:00",
"start": "13:30",
"duration": "01:15",
"abstract": "Women’s access to and use of communication technologies, as well as the impact of technologies on women, has been a major issue over the past few decades and this is only getting more complicated with the power of digital platforms and the rapid roll out of AI. There is a growing gender digital divide within and across countries in ESEAP and more widely, the unchecked spread of technology-facilitated gender-based violence, male dominance in media and technology ownership and leadership, as well as gender biases in the constantly evolving communication technologies, with Artificial Intelligence being the latest in the series. Yet new technologies may also help address some challenges and it is essential women in ESEAP understand the rapid changes impacting WP and world. This session brings together a panel of speakers as well as a discussion of the issues around women and technology.",
"slug": "eseapcon-103-digital-rights-technology-and-gender-panel-and-discussion",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/NUWQDM/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/NUWQDM/feedback/",
"logo": "",
"persons": [
{
"id": "2831",
"name": "Rachel Judhistari"
},
{
"id": "2818",
"name": "Vanj Padilla"
}
],
"person_names": [
"Rachel Judhistari",
"Vanj Padilla"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_2_-_Women/Youth/ESEAP_Hub-103"
},
{
"guid": "0fb6c299-eb7f-5b15-b3a2-0373fd4c9257",
"id": "923",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Mapping the Wiki women's movement",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-15T14:45:00+08:00",
"start": "14:45",
"duration": "00:15",
"abstract": "The Wikimedia Movement has tried many strategies to improve the gender gap and it can be hard to know who is doing what or how to connect. This presentation will provide an overview of the kinds of activities and groups that have tried to support women in the movement around the world and consider what has worked and how we might engage with these groups more effectively in ESEAP.",
"slug": "eseapcon-923-mapping-the-wiki-women-s-movement",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/8AR9U9/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/8AR9U9/feedback/",
"logo": "",
"persons": [
{
"id": "33",
"name": "Amanda Lawrence"
}
],
"person_names": [
"Amanda Lawrence"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_2_-_Women/Youth/ESEAP_Hub-923"
},
{
"guid": "89d06bf2-9c9b-5ddf-bd83-6785e34a3ab6",
"id": "45",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "A+F Strategic Transformation: From Editing Articles to Co-creating a Feminist Data Commons",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-15T15:00:00+08:00",
"start": "15:00",
"duration": "00:15",
"abstract": "Over the past decade, Art+Feminism (A+F) has built a global community through edit-a-thons, working to reduce knowledge gaps on Wikipedia related to gender, feminism, and the arts. In recent years, A+F’s strategy has been undergoing an important transformation: shifting from a primary focus on Wikipedia articles toward feminist data activism centered on Wikidata.\nArt+Feminism(A+F)在過去十多年以全球編輯松(edit-a-thon)建立社群,致力於縮小維基百科中與性別、女性主義與藝術相關的知識落差。近年來,A+F 的策略正經歷一個重要轉變:從以 Wikipedia 條目為主,進一步走向以 Wikidata 為核心的女性主義資料行動(feminist data activism)。",
"slug": "eseapcon-45-a-f-strategic-transformation-from-editing-articles-to-co-creating-a-feminist-data-commons",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/W3ND3N/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/W3ND3N/feedback/",
"logo": "",
"persons": [
{
"id": "123",
"name": "Kunokuno"
},
{
"id": "58",
"name": "Jessie"
}
],
"person_names": [
"Kunokuno",
"Jessie"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_2_-_Women/Youth/ESEAP_Hub-45"
},
{
"guid": "430b117c-6ab8-561a-9410-a629f346c1cc",
"id": "864",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Next Gen Wiki Women: Pioneering the future together:",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-15T15:30:00+08:00",
"start": "15:30",
"duration": "01:00",
"abstract": "How can the Wikimedia movement attract, encourage and support the next generation of young women to participate?",
"slug": "eseapcon-864-next-gen-wiki-women-pioneering-the-future-together",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/FSZJK7/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/FSZJK7/feedback/",
"logo": "",
"persons": [
{
"id": "3276",
"name": "Asmah Federico"
}
],
"person_names": [
"Asmah Federico"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Room_2_-_Women/Youth/ESEAP_Hub-864"
}
]
},
{
"name": "Out of venue",
"guid": "625ea241-8b39-58f1-9029-68f2b0341dbe",
"events": [
{
"guid": "9333c360-d045-50fc-9b79-782e884f85d2",
"id": "933",
"room": "Out of venue",
"title": "Cultural event (Day 1)",
"subtitle": "",
"type": "Conference activity",
"date": "2026-05-15T14:00:00+08:00",
"start": "14:00",
"duration": "01:00",
"abstract": "TBC",
"slug": "eseapcon-933-cultural-event-day-1",
"track": "",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/3RMDEL/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/3RMDEL/feedback/",
"logo": "",
"persons": [
{
"id": "2817",
"name": "ESEAP Conference 2026 COT"
},
{
"id": "3455",
"name": "Reke"
}
],
"person_names": [
"ESEAP Conference 2026 COT",
"Reke"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-1-Out_of_venue-933"
}
]
}
]
},
{
"index": "2",
"date": "2026-05-16",
"start": "2026-05-16T04:00:00+08:00",
"end": "2026-05-17T03:59:00+08:00",
"day_label": "day-2",
"rooms": [
{
"name": "Main room",
"guid": "7c04481c-096d-589d-8f04-632d682d5957",
"events": [
{
"guid": "cd5c7672-621a-56e7-8982-b8c16858c143",
"id": "52",
"room": "Main room",
"title": "Conversation with the Wikimedia Foundation Board of Trustees",
"subtitle": "",
"type": "Panel discussion",
"date": "2026-05-16T09:00:00+08:00",
"start": "09:00",
"duration": "00:45",
"abstract": "Get to know the Wikimedia Foundation Board of Trustees and learn more about their work as we are pioneering the next 25 years of the Wikimedia movement. The Board of Trustees will host a short panel followed by an open discussion with the audience.",
"slug": "eseapcon-52-conversation-with-the-wikimedia-foundation-board-of-trustees",
"track": "Governance",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/RZKSWJ/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/RZKSWJ/feedback/",
"logo": "",
"persons": [
{
"id": "64",
"name": "Ivonne"
}
],
"person_names": [
"Ivonne"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Main_room-52"
},
{
"guid": "4c49fc8a-953d-5120-9e25-0455f96f1717",
"id": "111",
"room": "Main room",
"title": "The UCoC Ecosystem Five Years On: Insights, Challenges, and Opportunities for ESEAP",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-16T09:45:00+08:00",
"start": "09:45",
"duration": "00:45",
"abstract": "Five years after the Wikimedia Foundation Board of Trustees ratified the Universal Code of Conduct (UCoC) as a global policy in February 2021, much has changed in the landscape of Wikimedia internal community governance, particularly in realizing the 2030 Movement Strategy recommendation to establish a movement-wide inclusive, welcoming, safe, and harassment-free environment in order to better attract and retain new and diverse volunteers. This session looks back at what and how the UCoC and its Enforcement Guidelines are becoming a widely-accepted standard within the Wikimedia movement with stewardship of the UCoC Coordinating Committee (U4C), and what kind of challenges and opportunities alike that are foreseen in the future, with particular focus to the involvement and participation of Wikimedia project communities and affiliates in the ESEAP region.",
"slug": "eseapcon-111-the-ucoc-ecosystem-five-years-on-insights-challenges-and-opportunities-for-eseap",
"track": "Governance",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/YKMM9C/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/YKMM9C/feedback/",
"logo": "",
"persons": [
{
"id": "109",
"name": "RamzyM (WMF)"
}
],
"person_names": [
"RamzyM (WMF)"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Main_room-111"
},
{
"guid": "09b23b10-5dc6-5172-8acb-7a59bae8b749",
"id": "133",
"room": "Main room",
"title": "Forging partnerships with embassies",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-16T10:45:00+08:00",
"start": "10:45",
"duration": "00:15",
"abstract": "Wikimedia events will be more attractive if we collaborate with other institutions. One of them is foreign embassies which is a good partner that all communities should try collaborate with.",
"slug": "eseapcon-133-forging-partnerships-with-embassies",
"track": "Outreach \u0026 Partnership",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/LMXU7L/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/LMXU7L/feedback/",
"logo": "",
"persons": [
{
"id": "92",
"name": "Tofeiku"
}
],
"person_names": [
"Tofeiku"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Main_room-133"
},
{
"guid": "2e685fed-0bf3-5bf9-b714-84a3c0cc23be",
"id": "17",
"room": "Main room",
"title": "Internet policy and the Wikimedia model",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-16T11:00:00+08:00",
"start": "11:00",
"duration": "00:15",
"abstract": "Across the world governments are implementing policies on digital technologies that have the potential to support or challenge the public interest and the Wikimedia model. For Wikipedia this is now coalescing around the idea of digital public goods, digital commons, and digital public infrastructure. In this talk I will unpack what these terms mean and how they help us think through and advocate for Wikimedia in the face of changing policy positions.",
"slug": "eseapcon-17-internet-policy-and-the-wikimedia-model",
"track": "Legal \u0026 Advocacy",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/T8YSUB/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/T8YSUB/feedback/",
"logo": "",
"persons": [
{
"id": "33",
"name": "Amanda Lawrence"
}
],
"person_names": [
"Amanda Lawrence"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Main_room-17"
},
{
"guid": "f78e7e0b-a4b1-5cce-bbb0-702b3ff9fdfb",
"id": "124",
"room": "Main room",
"title": "Title: Wiki Batu Basurek: Reviving the ‘Lord of the Golden Earth’. Subtitle: Solving the Quality Gap for Minangkabau Heritage Articles",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-16T11:15:00+08:00",
"start": "11:15",
"duration": "00:15",
"abstract": "How do we bridge the gap between ancient stone inscriptions and the digital age? Join us for an exploration of \"Wiki Batu Basurek,\" a pilot project dedicated to documenting the 13th-century Hindu-Buddhist heritage of the Minangkabau people. While Indonesia is rich in cultural history, many significant archaeological sites remain underrepresented on Wikimedia—often existing only as \"stubs\" with poor visual documentation and limited citations.\nThis session moves beyond simple photography to showcase a systematic approach for heritage article writing in Wikipedia. By combining field research in West Sumatra with library and museum archival work in Jakarta, the project prioritizes high-quality article creation and multilingual data over mere \"byte-count\" competitions. We will share our strategy for engaging experienced editors through specialized workshops to try to create a scalable model for heritage preservation. Learn how we are reviving the legacy of the \"Lord of the Golden Earth\" for a global audience!",
"slug": "eseapcon-124-title-wiki-batu-basurek-reviving-the-lord-of-the-golden-earth-subtitle-solving-the-quality-gap-for-minangkabau-heritage-articles",
"track": "Knowledge Equity \u0026 Representation",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/ZVYUWS/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/ZVYUWS/feedback/",
"logo": "",
"persons": [
{
"id": "120",
"name": "Ichsan Mochtar"
}
],
"person_names": [
"Ichsan Mochtar"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Main_room-124"
},
{
"guid": "f8b971ed-3610-5adc-b140-013279f77a66",
"id": "46",
"room": "Main room",
"title": "Hello From West Asia",
"subtitle": "",
"type": "Demonstration",
"date": "2026-05-16T11:30:00+08:00",
"start": "11:30",
"duration": "00:30",
"abstract": "Year after year, Wikimedia user groups in West Asia continue to grow, with more regional and international initiatives emerging and gaining momentum. However, there is currently no Asia-wide conference that connects these West Asian efforts with the ESEAP region.\n\nThe ESEAP Conference presents a valuable opportunity to showcase initiatives originating from West Asia, discuss them openly, and explore how communities across the region can participate and collaborate. So.. hello from West Asia!",
"slug": "eseapcon-46-hello-from-west-asia",
"track": "Outreach \u0026 Partnership",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/AHCNHB/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/AHCNHB/feedback/",
"logo": "",
"persons": [
{
"id": "59",
"name": "Ali khaleel"
}
],
"person_names": [
"Ali khaleel"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Main_room-46"
},
{
"guid": "bd1eca3a-902c-5e07-b6d5-43b7373ecfa3",
"id": "50",
"room": "Main room",
"title": "Innovating the Wikipedia Reading Experience Together",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-16T13:00:00+08:00",
"start": "13:00",
"duration": "01:00",
"abstract": "Wikipedia is facing a shifting global readership landscape: how people find, consume, and engage with information is changing rapidly, causing a decline in pageviews to our projects. This interactive workshop invites participants to explore what these changes mean for Wikipedia readers, particularly across ESEAP communities, and how we as a movement can respond creatively and responsibly.\n\nWe will briefly ground the conversation in current readership trends and challenges, then share examples of reader-facing experiments and features in development, such as saved reading lists, improvements to search, and new ways to browse multimedia content. The core of the session will be collaborative: participants will break into small groups to identify reader pain points, surface regional perspectives, and brainstorm ideas that could better delight, support, and retain readers.\n\nThe session will prioritize open discussion and collective sense-making, concluding with a share-out to highlight themes, tensions, and promising directions for future reader-focused work.",
"slug": "eseapcon-50-innovating-the-wikipedia-reading-experience-together",
"track": "Wild Ideas \u0026 Other",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/LTSVEH/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/LTSVEH/feedback/",
"logo": "",
"persons": [
{
"id": "63",
"name": "EBlackorby-WMF"
}
],
"person_names": [
"EBlackorby-WMF"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Main_room-50"
},
{
"guid": "76db888b-12cd-5482-8375-0970edc45fe6",
"id": "11",
"room": "Main room",
"title": "My Story: Contributing More than 1,800 New Articles in English Wikipedia about Taiwan",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-16T14:15:00+08:00",
"start": "14:15",
"duration": "00:15",
"abstract": "My contribution to English Wikipedia in writing new articles about Taiwan in which up-to-date has reached more than 1,800 new articles. All of the story, challenges, consensus built, research etc shall be shared and discuss with the audience.",
"slug": "eseapcon-11-my-story-contributing-more-than-1-800-new-articles-in-english-wikipedia-about-taiwan",
"track": "Community Story",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/LJ3BL8/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/LJ3BL8/feedback/",
"logo": "",
"persons": [
{
"id": "26",
"name": "ESEAP Hub Steering Committee"
}
],
"person_names": [
"ESEAP Hub Steering Committee"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Main_room-11"
},
{
"guid": "e5444ef7-685e-5894-8cdd-81cf6b130002",
"id": "30",
"room": "Main room",
"title": "Fitting Sign Languages into Wiktionary",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-16T14:30:00+08:00",
"start": "14:30",
"duration": "00:30",
"abstract": "Wiktionary has been a successful solid platform of inserting corpora from hundreds of languages, including the most detailed linguistic details. However, sign languages, being a visual language, are incompatible with Wiktionary's textual nature, and are often neglected, safe from a few with standardized written-form transliterations. This session uncovers how can sign language visuals can be inserted into Wiktionary, with examples from the Malay Wiktionary that I had done. We'll uncover over the challenges of fitting sign language material into Wiktionary and how we can possibly remediate them.",
"slug": "eseapcon-30-fitting-sign-languages-into-wiktionary",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/3CDL7X/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/3CDL7X/feedback/",
"logo": "",
"persons": [
{
"id": "44",
"name": "Faris Hazman Razali (PeaceSeekers)"
}
],
"person_names": [
"Faris Hazman Razali (PeaceSeekers)"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Main_room-30"
},
{
"guid": "37c37a2a-be31-5024-adc6-7b31069a469a",
"id": "936",
"room": "Main room",
"title": "Lightning Talks (Showcase I)",
"subtitle": "",
"type": "Lightning Talks",
"date": "2026-05-16T15:15:00+08:00",
"start": "15:15",
"duration": "01:15",
"abstract": "TBC",
"slug": "eseapcon-936-lightning-talks-showcase-i",
"track": "",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/HMSJPM/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/HMSJPM/feedback/",
"logo": "",
"persons": [
{
"id": "87",
"name": "LiouShowShya"
},
{
"id": "123",
"name": "Kunokuno"
},
{
"id": "62",
"name": "Martini Rahman"
},
{
"id": "41",
"name": "Santhosh Notagar99"
},
{
"id": "3182",
"name": "Sarawut Khamset"
},
{
"id": "96",
"name": "Almasiva Tirta Maedy"
},
{
"id": "56",
"name": "Youngjin Ko"
}
],
"person_names": [
"LiouShowShya",
"Kunokuno",
"Martini Rahman",
"Santhosh Notagar99",
"Sarawut Khamset",
"Almasiva Tirta Maedy",
"Youngjin Ko"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Main_room-936"
},
{
"guid": "0b2b7eb5-c63a-5efa-b833-2b8f84223c8e",
"id": "68",
"room": "Main room",
"title": "Wikipedia 25th Birthday Celebration",
"subtitle": "",
"type": "Other",
"date": "2026-05-16T16:30:00+08:00",
"start": "16:30",
"duration": "00:30",
"abstract": "It's time to party! Let's celebrate 25 years of contribution and communities who’ve been shaping the sum of all human knowledge. It is also time to appreciate and showcase the milestones that the ESEAP communities have reached. Join us for fun quizzes, stories, and birthday cake!",
"slug": "eseapcon-68-wikipedia-25th-birthday-celebration",
"track": "Wild Ideas \u0026 Other",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/LLPZSB/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/LLPZSB/feedback/",
"logo": "",
"persons": [
{
"id": "64",
"name": "Ivonne"
}
],
"person_names": [
"Ivonne"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Main_room-68"
}
]
},
{
"name": "Room 1 - Workshop",
"guid": "6f20d8d1-8fc4-5621-8803-05cd5bae1def",
"events": [
{
"guid": "2057a762-992a-5d80-990b-75b0e8a5a930",
"id": "128",
"room": "Room 1 - Workshop",
"title": "Data and Technology Collaborations across ESEAP Communities",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-16T09:00:00+08:00",
"start": "09:00",
"duration": "01:30",
"abstract": "This roundtable invites participants from the ESEAP region who are interested in advancing community capacity in data- and technology-driven Wikimedia projects, with a particular focus on Wikidata. Building on experiences from Wikimedia Indonesia, the session will facilitate an open discussion on how communities across the region can collaborate to strengthen skills in structured data, data reuse, and technology adoption. Participants will share challenges, opportunities, and ongoing initiatives related to Wikidata engagement, including contributor onboarding, partnerships, data maintenance, and reuse through tools such as SPARQL and visualizations. The discussion aims to identify potential cross-community collaborations, shared learning agendas, and practical topics that can support sustainable growth of Wikidata and related Wikimedia projects in the ESEAP region.",
"slug": "eseapcon-128-data-and-technology-collaborations-across-eseap-communities",
"track": "Open Data \u0026 Wikidata",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/8WQJKB/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/8WQJKB/feedback/",
"logo": "",
"persons": [
{
"id": "124",
"name": "Hisyam (WMID)"
}
],
"person_names": [
"Hisyam (WMID)"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_1_-_Workshop-128"
},
{
"guid": "c272c622-6258-5a1a-b74e-a398b5221fe9",
"id": "131",
"room": "Room 1 - Workshop",
"title": "Bite-sized History in Wikidata and Commons",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-16T10:45:00+08:00",
"start": "10:45",
"duration": "00:15",
"abstract": "One of the projects of Wiki Society of the Philippines (formerly Wikimedia Philippines) has been doing since 2016 is the WikiProject Philippine historical markers, which aims to document the national historical markers of the Philippines in Wikidata and Wikimedia Commons. We will be sharing statistics, learnings, and insights that we’ve had in doing this project for 10 years.",
"slug": "eseapcon-131-bite-sized-history-in-wikidata-and-commons",
"track": "Open Data \u0026 Wikidata",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/MGZMP8/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/MGZMP8/feedback/",
"logo": "",
"persons": [
{
"id": "122",
"name": "Eugene Alvin Villar"
}
],
"person_names": [
"Eugene Alvin Villar"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_1_-_Workshop-131"
},
{
"guid": "1d204a66-17cc-5a19-accf-4c19363b3b5b",
"id": "31",
"room": "Room 1 - Workshop",
"title": "Collaborative Contributions, a new way to showcase the impact of your events on the wikis",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-16T11:00:00+08:00",
"start": "11:00",
"duration": "01:00",
"abstract": "With Collaborative Contributions, collaboration on the wikis can be more engaging and rewarding. We also hypothesize that it can increase on-wiki collaboration and editor retention.",
"slug": "eseapcon-31-collaborative-contributions-a-new-way-to-showcase-the-impact-of-your-events-on-the-wikis",
"track": "Capacity Building",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/CRTN93/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/CRTN93/feedback/",
"logo": "",
"persons": [
{
"id": "45",
"name": "Bonaventura Aditya Perdana"
}
],
"person_names": [
"Bonaventura Aditya Perdana"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_1_-_Workshop-31"
},
{
"guid": "71f1a610-2f65-5e3f-9ef3-bbf8e9c2fc4e",
"id": "53",
"room": "Room 1 - Workshop",
"title": "Wikipedia Culture Gap Workshop",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-16T13:00:00+08:00",
"start": "13:00",
"duration": "01:00",
"abstract": "Each Wikipedia has its distinct culture, and cultural customs of Wikipedias differ by languages. For example, English Wikipedia, Chinese Wikipedia, Japanese Wikipedia, and Vietnamese Wikipedia are among top 20 largest Wikipedias by article count, and many Wikipedians from ESEAP regions have participated in them, but their rules are significantly different from each other. This workshop aims to understand cultural differences between Wikipedians involved in different language versions of Wikipedias through group discussion.",
"slug": "eseapcon-53-wikipedia-culture-gap-workshop",
"track": "Capacity Building",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/GKN9F7/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/GKN9F7/feedback/",
"logo": "",
"persons": [
{
"id": "22",
"name": "KITAMURA Sae"
}
],
"person_names": [
"KITAMURA Sae"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_1_-_Workshop-53"
},
{
"guid": "cb14457e-88fc-551b-9cdd-f5de5bc9bcdf",
"id": "36",
"room": "Room 1 - Workshop",
"title": "Threat Modelling for Wikimedians",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-16T14:00:00+08:00",
"start": "14:00",
"duration": "01:00",
"abstract": "Wikimedians operate in a rapidly evolving digital landscape marked by disinformation, harassment, and diminishing online freedoms. Our work is increasingly visible, yet grounded in principles of openness and transparency, creating unique challenges for personal safety and security. This session introduces Threat Modeling as a practical framework to help you identify the specific risks you face, understand potential adversaries or sources of harm, and choose appropriate protections. Participants will leave with a personalized threat model, immediate steps to reduce vulnerability, and strategies for balancing transparency with personal protection.",
"slug": "eseapcon-36-threat-modelling-for-wikimedians",
"track": "Capacity Building",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/CFUMZ9/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/CFUMZ9/feedback/",
"logo": "",
"persons": [
{
"id": "49",
"name": "mfischer"
}
],
"person_names": [
"mfischer"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_1_-_Workshop-36"
},
{
"guid": "ad04e893-3811-59f0-9158-65ff2a45f52c",
"id": "77",
"room": "Room 1 - Workshop",
"title": "Legal realities and editorial freedom: understanding the challenges of editing in the current environment",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-16T15:15:00+08:00",
"start": "15:15",
"duration": "01:00",
"abstract": "Editing Wikipedia and sister projects has become more challenging in the current global environment. Come learn about what you can do to stay safe while editing and what to do when the risks become real. This workshop will explore how legal frameworks in different countries affect Wikimedia project content. We will discuss the role of the Legal Department and the importance of community-led compliance. We will also provide an overview of the resources available to community members at risk for their good faith contributions.",
"slug": "eseapcon-77-legal-realities-and-editorial-freedom-understanding-the-challenges-of-editing-in-the-current-environment",
"track": "Legal \u0026 Advocacy",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/9YDQCT/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/9YDQCT/feedback/",
"logo": "",
"persons": [
{
"id": "80",
"name": "Arik Karani"
}
],
"person_names": [
"Arik Karani"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_1_-_Workshop-77"
},
{
"guid": "ad680de2-6a4c-569c-99b5-01d7112601ca",
"id": "4",
"room": "Room 1 - Workshop",
"title": "Decolonize of Name of Species",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-16T16:15:00+08:00",
"start": "16:15",
"duration": "00:15",
"abstract": "This session addresses the linguistic bias in non-English Wikipedia projects where the adoption of English common species names often marginalizes rich local vernacular terms, constituting a subtle colonization of knowledge. The primary aim is to establish the preservation and prominent display of vernacular names as a core goal for global knowledge equity on Wikipedia. To achieve this, the session outlines four core objectives: increasing contributor awareness of policy bias, encouraging a methodological shift toward prioritizing Latin binomials or local vernacular terms, and fostering collaboration to implement clearer, linguistically decolonized naming guidelines.",
"slug": "eseapcon-4-decolonize-of-name-of-species",
"track": "Knowledge Equity \u0026 Representation",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/SWCDHM/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/SWCDHM/feedback/",
"logo": "",
"persons": [
{
"id": "21",
"name": "Agus Damanik"
}
],
"person_names": [
"Agus Damanik"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_1_-_Workshop-4"
}
]
},
{
"name": "Room 2 - Women/Youth/ESEAP Hub",
"guid": "b7c77ed5-fc73-5425-b3b0-41c58cc7357a",
"events": [
{
"guid": "eecc0d64-de2e-5723-813d-9f41ec4814e8",
"id": "904",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Youth icebreakers and introductions",
"subtitle": "",
"type": "Conference activity",
"date": "2026-05-16T09:00:00+08:00",
"start": "09:00",
"duration": "00:45",
"abstract": "Get to know each other and everyone, and get ready to make yourself known. An interactive and in-depth icebreaker with the goal of having attendees meet new people.",
"slug": "eseapcon-904-youth-icebreakers-and-introductions",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/JT7TFH/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/JT7TFH/feedback/",
"logo": "",
"persons": [
{
"id": "1652",
"name": "Chlod Alejandro"
}
],
"person_names": [
"Chlod Alejandro"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_2_-_Women/Youth/ESEAP_Hub-904"
},
{
"guid": "7d62cf0d-14cb-5cd3-8929-fd50a5e03aa9",
"id": "906",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Setting the stage: a crash course on the ESEAP youth",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-16T09:45:00+08:00",
"start": "09:45",
"duration": "00:45",
"abstract": "A primer on the global and regional Wikimedia youth movement. Get to know all there is about the Wikimedia youth, where we are now, and what we do.",
"slug": "eseapcon-906-setting-the-stage-a-crash-course-on-the-eseap-youth",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/DB9UHD/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/DB9UHD/feedback/",
"logo": "",
"persons": [
{
"id": "1652",
"name": "Chlod Alejandro"
},
{
"id": "3275",
"name": "Curtis Lui"
}
],
"person_names": [
"Chlod Alejandro",
"Curtis Lui"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_2_-_Women/Youth/ESEAP_Hub-906"
},
{
"guid": "53cb319b-e36b-581b-80e0-d6dff58f9335",
"id": "907",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Wikimedia in education: a look at Wiki Clubs",
"subtitle": "",
"type": "Panel discussion",
"date": "2026-05-16T10:45:00+08:00",
"start": "10:45",
"duration": "00:40",
"abstract": "What role do Wiki Clubs have in bringing in newcomers into the Wikimedia movement, and how could we bring them to more institutions in the region?",
"slug": "eseapcon-907-wikimedia-in-education-a-look-at-wiki-clubs",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/QUFR97/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/QUFR97/feedback/",
"logo": "",
"persons": [
{
"id": "3276",
"name": "Asmah Federico"
}
],
"person_names": [
"Asmah Federico"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_2_-_Women/Youth/ESEAP_Hub-907"
},
{
"guid": "638db0c3-31e1-51e4-be82-b13568b4450c",
"id": "909",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Pioneers of the future: youth initiatives in the ESEAP region",
"subtitle": "",
"type": "Panel discussion",
"date": "2026-05-16T11:25:00+08:00",
"start": "11:25",
"duration": "00:20",
"abstract": "Across the region, Wikimedians work on their own initiatives that help develop the youth in their region. This panel session features organizers of these initiatives, and a spotlight on what makes their initiatives successful.",
"slug": "eseapcon-909-pioneers-of-the-future-youth-initiatives-in-the-eseap-region",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/TXFRZB/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/TXFRZB/feedback/",
"logo": "",
"persons": [
{
"id": "86",
"name": "Ahmad Ali Karim"
}
],
"person_names": [
"Ahmad Ali Karim"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_2_-_Women/Youth/ESEAP_Hub-909"
},
{
"guid": "30b1efd1-ea8e-5ae7-8536-0b0da97a0e82",
"id": "911",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Panel discussion reflections",
"subtitle": "",
"type": "Other",
"date": "2026-05-16T11:45:00+08:00",
"start": "11:45",
"duration": "00:15",
"abstract": "A reflection on the panel discussions. We aim to gather attendee feedback, their learnings from the previous panel discussions.",
"slug": "eseapcon-911-panel-discussion-reflections",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/3MAKHH/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/3MAKHH/feedback/",
"logo": "",
"persons": [
{
"id": "1652",
"name": "Chlod Alejandro"
}
],
"person_names": [
"Chlod Alejandro"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_2_-_Women/Youth/ESEAP_Hub-911"
},
{
"guid": "4e609ce3-7768-5697-8356-6fcf4d9dbb4a",
"id": "912",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Trivia session",
"subtitle": "",
"type": "Conference activity",
"date": "2026-05-16T13:00:00+08:00",
"start": "13:00",
"duration": "00:15",
"abstract": "Time to wake up for an upcoming afternoon of activities and discussions.",
"slug": "eseapcon-912-trivia-session",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/AURUVZ/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/AURUVZ/feedback/",
"logo": "",
"persons": [
{
"id": "3276",
"name": "Asmah Federico"
}
],
"person_names": [
"Asmah Federico"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_2_-_Women/Youth/ESEAP_Hub-912"
},
{
"guid": "6885942e-fca1-5d1a-ad56-ce4d4228c03d",
"id": "913",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Capacity building for the youth",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-16T13:15:00+08:00",
"start": "13:15",
"duration": "01:00",
"abstract": "Three topics, three breakout discussions. Pick your preferred topic, and get ready to learn with others.",
"slug": "eseapcon-913-capacity-building-for-the-youth",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/QP3MFV/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/QP3MFV/feedback/",
"logo": "",
"persons": [],
"person_names": [],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_2_-_Women/Youth/ESEAP_Hub-913"
},
{
"guid": "dafef1fc-038a-5ff0-bf2b-de1a63ae18da",
"id": "914",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "What support does the youth need?",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-16T14:15:00+08:00",
"start": "14:15",
"duration": "00:45",
"abstract": "As a member of the youth in your community, what support do you need to make your voice heard? To invite more contributors? To keep yourself active within the movement?",
"slug": "eseapcon-914-what-support-does-the-youth-need",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/RRHPKR/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/RRHPKR/feedback/",
"logo": "",
"persons": [],
"person_names": [],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_2_-_Women/Youth/ESEAP_Hub-914"
},
{
"guid": "c057903c-f282-5976-aa13-b2f8f591bbe7",
"id": "915",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "We listen and we don’t judge: youth open mic",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-16T15:15:00+08:00",
"start": "15:15",
"duration": "00:30",
"abstract": "A summary of the main points we gathered from the previous roundtable discussions, and an open mic session to allow the youth to share their goals, plans, and ambitions for the future.",
"slug": "eseapcon-915-we-listen-and-we-don-t-judge-youth-open-mic",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/MNBFWL/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/MNBFWL/feedback/",
"logo": "",
"persons": [
{
"id": "86",
"name": "Ahmad Ali Karim"
},
{
"id": "3276",
"name": "Asmah Federico"
}
],
"person_names": [
"Ahmad Ali Karim",
"Asmah Federico"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_2_-_Women/Youth/ESEAP_Hub-915"
},
{
"guid": "2598fe4d-fc34-5eef-b8c4-671b2c507f08",
"id": "916",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Introduction to the ESEAP Youth Group",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-16T15:45:00+08:00",
"start": "15:45",
"duration": "00:15",
"abstract": "An introduction and official launch to the ESEAP Youth Group, an ESEAP Hub initiative. Get to hear how we started, what we plan to do, and how to join us.",
"slug": "eseapcon-916-introduction-to-the-eseap-youth-group",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/ALULGS/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/ALULGS/feedback/",
"logo": "",
"persons": [
{
"id": "1652",
"name": "Chlod Alejandro"
}
],
"person_names": [
"Chlod Alejandro"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_2_-_Women/Youth/ESEAP_Hub-916"
},
{
"guid": "7a706a8d-e5fb-5ce7-90f8-f9f2fbd08649",
"id": "917",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Meet the new ESEAP Youth Group!",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-16T16:00:00+08:00",
"start": "16:00",
"duration": "00:30",
"abstract": "For the first two years of the ESEAP Youth Group, we’ll have an interim leadership committee and working groups to help organize action within the group. Let’s discuss priorities and, for prospective members, the working groups they wish to be part of.",
"slug": "eseapcon-917-meet-the-new-eseap-youth-group",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/JTBXUG/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/JTBXUG/feedback/",
"logo": "",
"persons": [
{
"id": "86",
"name": "Ahmad Ali Karim"
},
{
"id": "1652",
"name": "Chlod Alejandro"
},
{
"id": "3276",
"name": "Asmah Federico"
},
{
"id": "3275",
"name": "Curtis Lui"
}
],
"person_names": [
"Ahmad Ali Karim",
"Chlod Alejandro",
"Asmah Federico",
"Curtis Lui"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Room_2_-_Women/Youth/ESEAP_Hub-917"
}
]
},
{
"name": "Out of venue",
"guid": "625ea241-8b39-58f1-9029-68f2b0341dbe",
"events": [
{
"guid": "270d6005-5c5e-515b-b8ef-7db0841ab591",
"id": "47",
"room": "Out of venue",
"title": "Commons Photowalk",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-16T09:00:00+08:00",
"start": "09:00",
"duration": "03:00",
"abstract": "This Commons Photowalk will be a hands-on, collaborative activity during ESEAP Conference 2026, aimed at documenting Kaohsiung’s culture, heritage, public spaces, and contemporary life for Wikimedia Commons. Participants will learn practical tips on photography for Wikimedia projects, including framing, metadata, categories, and licensing, while exploring the city together.\n\nAligned with the conference theme “New Era of ESEAP: Pioneer the Future Together!”, the photowalk encourages cross-community collaboration and knowledge equity by creating freely licensed visual content that represents the ESEAP region. The session is open to beginners and experienced photographers alike and will result in immediate uploads to Wikimedia Commons, contributing lasting value to Wikipedia and sister projects across languages.",
"slug": "eseapcon-47-commons-photowalk",
"track": "Capacity Building",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/JD3H99/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/JD3H99/feedback/",
"logo": "",
"persons": [
{
"id": "60",
"name": "Suyash Dwivedi"
}
],
"person_names": [
"Suyash Dwivedi"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Out_of_venue-47"
},
{
"guid": "f0817e51-300e-5a58-a1fd-bd1b9a751a31",
"id": "934",
"room": "Out of venue",
"title": "Cultural event (Day 2)",
"subtitle": "",
"type": "Conference activity",
"date": "2026-05-16T14:00:00+08:00",
"start": "14:00",
"duration": "01:00",
"abstract": "TBC",
"slug": "eseapcon-934-cultural-event-day-2",
"track": "",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/CJTRQM/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/CJTRQM/feedback/",
"logo": "",
"persons": [
{
"id": "2817",
"name": "ESEAP Conference 2026 COT"
},
{
"id": "3455",
"name": "Reke"
}
],
"person_names": [
"ESEAP Conference 2026 COT",
"Reke"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Out_of_venue-934"
},
{
"guid": "d3f6b8ad-5702-5f02-8a4d-56c104a16005",
"id": "945",
"room": "Out of venue",
"title": "Dinner/Karaoke",
"subtitle": "",
"type": "Conference activity",
"date": "2026-05-16T18:30:00+08:00",
"start": "18:30",
"duration": "02:15",
"abstract": "TBC",
"slug": "eseapcon-945-dinner-karaoke",
"track": "",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/VVR7KR/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/VVR7KR/feedback/",
"logo": "",
"persons": [
{
"id": "3455",
"name": "Reke"
},
{
"id": "2230",
"name": "Park Jangsik"
},
{
"id": "1963",
"name": "Twotwo2019"
},
{
"id": "56",
"name": "Youngjin Ko"
}
],
"person_names": [
"Reke",
"Park Jangsik",
"Twotwo2019",
"Youngjin Ko"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-2-Out_of_venue-945"
}
]
}
]
},
{
"index": "3",
"date": "2026-05-17",
"start": "2026-05-17T04:00:00+08:00",
"end": "2026-05-18T03:59:00+08:00",
"day_label": "day-3",
"rooms": [
{
"name": "Main room",
"guid": "7c04481c-096d-589d-8f04-632d682d5957",
"events": [
{
"guid": "aa2e7427-41df-5411-a1e0-6cf122aec36b",
"id": "56",
"room": "Main room",
"title": "Towards a Healthy Ecosystem of Wikimedia Organizations: Updates on the Movement Organizations Pilot, GRDC, and AffCom",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-17T09:00:00+08:00",
"start": "09:00",
"duration": "01:15",
"abstract": "During 2025 and following the Wikimedia Foundation Board of Trustees’ resolution on the Movement Charter, two major pilot initiatives were launched to address long-standing questions about the roles of movement organizations and the future of resource allocation. Today, both pilots have moved beyond initial exploration and are entering a phase of strategic definition and alignment.\nThis session will provide an update on where the Movement Organizations pilot and the Interim Global Resource Distribution Committee (GRDC) stand now. We will share the key achievements to date, the main insights emerging from both pilots, and present the upcoming next steps for both initiatives.\nThis session is designed not only to inform but also to invite deeper movement participation in shaping next steps.",
"slug": "eseapcon-56-towards-a-healthy-ecosystem-of-wikimedia-organizations-updates-on-the-movement-organizations-pilot-grdc-and-affcom",
"track": "Governance",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/ZNUEAR/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/ZNUEAR/feedback/",
"logo": "",
"persons": [
{
"id": "66",
"name": "Anna Torres Adell"
},
{
"id": "60",
"name": "Suyash Dwivedi"
}
],
"person_names": [
"Anna Torres Adell",
"Suyash Dwivedi"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Main_room-56"
},
{
"guid": "d4c36f29-bc51-59c1-b271-3d860486fbc7",
"id": "51",
"room": "Main room",
"title": "Bear Attacks, Parasitic Worms, and Anything Dangerous: 'Wikipedia Literature' in Japanese Wikipedia",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T10:15:00+08:00",
"start": "10:15",
"duration": "00:15",
"abstract": "‘Wikipedia literature’, or ‘Wikipedia bungaku’ in Japanese, is a slang term for Japanese Wikipedia articles that are interesting to read or that have some literary quality. This presentation aims to point out how Wikipedia articles gain popularity among readers and how differently Wikipedians and non-Wikipedians evaluate Wikipedia articles by discussing the reception of ‘Wikipedia literature’ in and out of the Japanese Wikimedia community. In Japanese Wikipedia, there are several famous articles referred to as ‘Wikipedia literature’, and there is also an article titled ‘Wikipedia bungaku’ in Japanese Wikipedia. Although the articles referred to as ‘Wikipedia literature’ are well received by non-Wikipedians, there have been debates about this term among Wikipedians. These articles share several common characteristics. Sensational articles tend to be hailed as ‘Wikipedia literature’. While these articles are regarded as ‘interesting to read’, the quality of each article drastically varies from the viewpoint of Wikipedians.",
"slug": "eseapcon-51-bear-attacks-parasitic-worms-and-anything-dangerous-wikipedia-literature-in-japanese-wikipedia",
"track": "Community Story",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/BQHSPF/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/BQHSPF/feedback/",
"logo": "",
"persons": [
{
"id": "22",
"name": "KITAMURA Sae"
}
],
"person_names": [
"KITAMURA Sae"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Main_room-51"
},
{
"guid": "052f67e9-00a8-5baa-907e-eb4b9d07d8c8",
"id": "12",
"room": "Main room",
"title": "Applying Agile Thinking to Wikimedia Community Projects",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-17T10:45:00+08:00",
"start": "10:45",
"duration": "00:45",
"abstract": "Across ESEAP, communities are running increasingly complex initiatives: multi-country campaigns, institutional partnerships, training cohorts, and GLAM collaborations. Organizers juggle limited volunteer time, changing partner expectations, and overlapping projects—often with no shared way to prioritize, plan capacity, or learn systematically from each cycle. This workshop invites participants to upgrade how they design and manage community projects using a lightweight form of agile.",
"slug": "eseapcon-12-applying-agile-thinking-to-wikimedia-community-projects",
"track": "Capacity Building",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/VNX3UJ/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/VNX3UJ/feedback/",
"logo": "",
"persons": [
{
"id": "25",
"name": "Sakti Pramudya (WMF)"
}
],
"person_names": [
"Sakti Pramudya (WMF)"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Main_room-12"
},
{
"guid": "5b72e4ff-a7e3-5c00-8117-9406a2233735",
"id": "9",
"room": "Main room",
"title": "Botanists in the Wikiverse: Planting the seeds of open data enrichment and reuse with the botanical community",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T11:30:00+08:00",
"start": "11:30",
"duration": "00:30",
"abstract": "Using the example of our ongoing outreach to botanists, we will outline how and why to collaborate with subject experts to educate and upskill them in Wikipedia, Wikimedia Commons and Wikidata at local, regional and international levels. We undertake this work in formal settings, by running biodiversity-related edit-a-thons and by participating in key scientific conferences. At botanical conferences, we have created programmes of outreach including workshops, webinars, and conference presentations. We also “Wikify” conferences by improving the coverage of botanists in Wikidata. This work creates awareness in scientific communities about how and why Wiki is important to them and their institutions, and empowers them to use Wiki to improve the visibility and accessibility of botanical data, research, archives and collections. This work also has flow-on benefits to other related WikiProjects and third party platforms including museum collection management systems, the Biodiversity Heritage Library catalogue, and iNaturalist.",
"slug": "eseapcon-9-botanists-in-the-wikiverse-planting-the-seeds-of-open-data-enrichment-and-reuse-with-the-botanical-community",
"track": "Outreach \u0026 Partnership",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/TW9WFJ/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/TW9WFJ/feedback/",
"logo": "",
"persons": [
{
"id": "23",
"name": "Stitchbird2"
}
],
"person_names": [
"Stitchbird2"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Main_room-9"
},
{
"guid": "6c80bed6-ce51-525e-9b37-d638870c4292",
"id": "66",
"room": "Main room",
"title": "日本の Wikipedia town ではどんなことをしているのか?",
"subtitle": "",
"type": "Demonstration",
"date": "2026-05-17T13:00:00+08:00",
"start": "13:00",
"duration": "00:30",
"abstract": "日本におけるWikipedia townとは「その土地の住民たちが自分の町の情報をWikipediaの記事にしよう」と言う目的で2013年に始まった。この活動はWikipedianが執筆指導を行い意欲のある司書たちにサポートされ、その後全国に広まった。\n2018年には全国で年間80件以上開催された。コロナ禍で一時下火になったが、その後徐々に回復し2025年末には総開催件数が500件を超えて、図書館とWikipediaのイベントとして定着している。なお街道ペディアや酒ペディアのような派生的活動も開設する。",
"slug": "eseapcon-66-wikipedia-town",
"track": "Outreach \u0026 Partnership",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/NCHDPG/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/NCHDPG/feedback/",
"logo": "",
"persons": [
{
"id": "71",
"name": "Miya.m"
}
],
"person_names": [
"Miya.m"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Main_room-66"
},
{
"guid": "9a35f204-fc62-5ff9-95d1-f614770e8241",
"id": "125",
"room": "Main room",
"title": "体験型イベントに学ぶ:学びとコミュニティ形成の設計",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T13:30:00+08:00",
"start": "13:30",
"duration": "00:15",
"abstract": "体験型イベントは、参加者が実際に手を動かしながら学ぶ場を提供します。日本では Wikipedia Town や OpenDatathon など、様々な活動を組み合わせた体験型イベントが行われてきました。本セッションでは、こうした多様な取り組みから共通する設計上の考え方や工夫を抽出し、私たちがそこから何を学べるかを考えます。\n\n例えば、Wikipedia Town では、街歩きや資料調査、編集、写真のアップロードといった作業を組み合わせ、参加者が手を動かしながら学べる場を提供しています。オープンデータソンでは、さらに OpenStreetMap のマッピングパーティを同時開催し、異なるコミュニティ同士の交流や協力も促しています。\n\nこうしたイベントから学べる共通のポイントとして、参加者の経験や関心に応じた設計、学びと楽しみのバランス、イベント後のコミュニティとの接点づくりなどがあります。本セッションでは、これらの考え方や工夫、直面した課題を紹介します。",
"slug": "eseapcon-125",
"track": "Knowledge Equity \u0026 Representation",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/C7ZRET/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/C7ZRET/feedback/",
"logo": "",
"persons": [
{
"id": "121",
"name": "Shinji Enoki"
}
],
"person_names": [
"Shinji Enoki"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Main_room-125"
},
{
"guid": "6694e3bf-8c04-534f-9262-caf97557a6b5",
"id": "855",
"room": "Main room",
"title": "Lightning Talk Showcase II",
"subtitle": "",
"type": "Lightning Talks",
"date": "2026-05-17T14:00:00+08:00",
"start": "14:00",
"duration": "01:15",
"abstract": "Lightning Talk Showcase II",
"slug": "eseapcon-855-lightning-talk-showcase-ii",
"track": "",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/YL8ST7/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/YL8ST7/feedback/",
"logo": "",
"persons": [
{
"id": "50",
"name": "Annidafattiya"
},
{
"id": "152",
"name": "Butch"
},
{
"id": "42",
"name": "Eugene Ormandy"
},
{
"id": "113",
"name": "Ilham Mufti Laksono"
},
{
"id": "3543",
"name": "Filipinayzd"
},
{
"id": "53",
"name": "のりまき"
},
{
"id": "105",
"name": "Shreya.Bhopal"
},
{
"id": "90",
"name": "Teddybear41422"
}
],
"person_names": [
"Annidafattiya",
"Butch",
"Eugene Ormandy",
"Ilham Mufti Laksono",
"Filipinayzd",
"のりまき",
"Shreya.Bhopal",
"Teddybear41422"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Main_room-855"
},
{
"guid": "1e1f229f-6c53-524f-a84e-c573ad2e7735",
"id": "8",
"room": "Main room",
"title": "Women in Wartime: Collaboration, open access \u0026 addressing gender bias",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T15:30:00+08:00",
"start": "15:30",
"duration": "00:30",
"abstract": "This session will share the Women in Red project, Women in Wartime, a collaboration between Auckland Museum’s Online Cenotaph team and Wikimedia platforms to increase content available about New Zealand women during wartime. Women in Wartime started as a content project then developed into an event series focusing on GLAM outreach and community building.",
"slug": "eseapcon-8-women-in-wartime-collaboration-open-access-addressing-gender-bias",
"track": "Outreach \u0026 Partnership",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/8ZNVWS/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/8ZNVWS/feedback/",
"logo": "/media/eseapcon/submissions/8ZNVWS/WomeninWartime_Wikimedia_0_GLbE1J7.jpg",
"persons": [
{
"id": "24",
"name": "Anjuli Selvadurai"
},
{
"id": "2228",
"name": "Sophie Elborough"
}
],
"person_names": [
"Anjuli Selvadurai",
"Sophie Elborough"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Main_room-8"
},
{
"guid": "db25968d-4414-52fb-a645-ac8285955fe3",
"id": "854",
"room": "Main room",
"title": "Closing ceremony",
"subtitle": "",
"type": "Conference activity",
"date": "2026-05-17T16:00:00+08:00",
"start": "16:00",
"duration": "01:00",
"abstract": "Closing ceremony",
"slug": "eseapcon-854-closing-ceremony",
"track": "",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/HGHY9E/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/HGHY9E/feedback/",
"logo": "",
"persons": [
{
"id": "3455",
"name": "Reke"
}
],
"person_names": [
"Reke"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Main_room-854"
}
]
},
{
"name": "Room 1 - Workshop",
"guid": "6f20d8d1-8fc4-5621-8803-05cd5bae1def",
"events": [
{
"guid": "1ee21805-7e7b-5897-ac32-e8908d1dddde",
"id": "19",
"room": "Room 1 - Workshop",
"title": "Everyone needs offline access - even if they think they don't",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T09:00:00+08:00",
"start": "09:00",
"duration": "01:00",
"abstract": "Three billion people do not have reliable connectivity. But real-life use cases shows that the numbers are growing, not going down.",
"slug": "eseapcon-19-everyone-needs-offline-access-even-if-they-think-they-don-t",
"track": "Technology",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/S99FWD/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/S99FWD/feedback/",
"logo": "/media/eseapcon/submissions/S99FWD/Hackathon-Kiwix_lYvhqdb_j6LUvGk.png",
"persons": [
{
"id": "34",
"name": "Stephane @Kiwix"
}
],
"person_names": [
"Stephane @Kiwix"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_1_-_Workshop-19"
},
{
"guid": "160f3293-b9f4-5be1-a379-d378468c865b",
"id": "109",
"room": "Room 1 - Workshop",
"title": "The Politisi Project: A collective effort on improving Indonesian politician representation at the English Wikipedia",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T10:00:00+08:00",
"start": "10:00",
"duration": "00:30",
"abstract": "A lecture regarding Politisi Project, a project aimed at improving the coverage and quality of contents of Indonesian politicians, and then continued with a discussion.",
"slug": "eseapcon-109-the-politisi-project-a-collective-effort-on-improving-indonesian-politician-representation-at-the-english-wikipedia",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/AKYUKC/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/AKYUKC/feedback/",
"logo": "",
"persons": [
{
"id": "107",
"name": "Jeromi Mikhael"
}
],
"person_names": [
"Jeromi Mikhael"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_1_-_Workshop-109"
},
{
"guid": "cb07a327-4c79-56be-8ff1-ec0edef0056b",
"id": "35",
"room": "Room 1 - Workshop",
"title": "What the **** is going on?",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-17T10:45:00+08:00",
"start": "10:45",
"duration": "01:00",
"abstract": "Ever been judged for existing? No? Well now is the time to face it head on. ESEAP affiliates will be judged on what they have (and have not) done in their respective countries for Wikimedia movement. Prove the speaker wrong and show people what REALLY goes on in your affiliate.",
"slug": "eseapcon-35-what-the-is-going-on",
"track": "Wild Ideas \u0026 Other",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/9DJJP7/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/9DJJP7/feedback/",
"logo": "",
"persons": [
{
"id": "48",
"name": "Farouk Azim"
}
],
"person_names": [
"Farouk Azim"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_1_-_Workshop-35"
},
{
"guid": "5d23d8b9-f0ee-5367-90dd-f3c27f99eb5a",
"id": "48",
"room": "Room 1 - Workshop",
"title": "Recording Neurodiversity: Beyond the Boundaries of Wikimedia and Neurodivergent Communities",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T11:45:00+08:00",
"start": "11:45",
"duration": "00:15",
"abstract": "Wikimedia Korea would like to introduce the Neurodiversity Project, which was launched to promote the inclusion of neurodiverse individuals and people with disabilities within the Wikimedia community, as well as the achievements made over the past three years. We aim to share insights on how to enhance diversity and inclusion in other Wikimedia communities based on our experience.",
"slug": "eseapcon-48-recording-neurodiversity-beyond-the-boundaries-of-wikimedia-and-neurodivergent-communities",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/3K3T9M/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/3K3T9M/feedback/",
"logo": "",
"persons": [
{
"id": "61",
"name": "Real rism"
}
],
"person_names": [
"Real rism"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_1_-_Workshop-48"
},
{
"guid": "04ee738f-e433-5190-8b67-0bb10dbc51ac",
"id": "14",
"room": "Room 1 - Workshop",
"title": "OpenRefine for all: The Powerful Tools to Work on Open Data and Wikidata",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-17T13:00:00+08:00",
"start": "13:00",
"duration": "01:00",
"abstract": "Some items imported by the community lack labels and descriptions in local languages. I will use hotel's items imported from booking.com, Agoda, Travelweekly, etc, as an example of demonstrating Open Refine",
"slug": "eseapcon-14-openrefine-for-all-the-powerful-tools-to-work-on-open-data-and-wikidata",
"track": "Open Data \u0026 Wikidata",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/A87WBV/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/A87WBV/feedback/",
"logo": "",
"persons": [
{
"id": "29",
"name": "Dennis Raylin Chen"
},
{
"id": "30",
"name": "S8321414"
}
],
"person_names": [
"Dennis Raylin Chen",
"S8321414"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_1_-_Workshop-14"
},
{
"guid": "f8f6a299-9650-5e10-ab8c-89c265131eb6",
"id": "57",
"room": "Room 1 - Workshop",
"title": "Data Reuse: (AI) reusing Wikidata's data",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T14:00:00+08:00",
"start": "14:00",
"duration": "00:30",
"abstract": "Wikidata is arguably the world's largest open knowledge graph for structured data. With about 120m items in Wikidata, many projects throughout the world have been reusing Wikidata’s data. In this session, I will share some examples of some of data reuse projects, including AI use case.",
"slug": "eseapcon-57-data-reuse-ai-reusing-wikidata-s-data",
"track": "Open Data \u0026 Wikidata",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/8EQWQL/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/8EQWQL/feedback/",
"logo": "",
"persons": [
{
"id": "67",
"name": "Alan Ang (WMDE)"
}
],
"person_names": [
"Alan Ang (WMDE)"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_1_-_Workshop-57"
},
{
"guid": "8f7b6d4f-61d2-51b9-8503-ef4c7c91b10b",
"id": "44",
"room": "Room 1 - Workshop",
"title": "Improving the representation of the Northern Territory one Wikidata item at a time!",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T14:30:00+08:00",
"start": "14:30",
"duration": "00:15",
"abstract": "In 2025 I got 'hooked'' on Mix and Match and I want to show how a project through Mix and Match can transform the representation of a region/topic",
"slug": "eseapcon-44-improving-the-representation-of-the-northern-territory-one-wikidata-item-at-a-time",
"track": "Community Story",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/9EF8DZ/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/9EF8DZ/feedback/",
"logo": "",
"persons": [
{
"id": "57",
"name": "Alice Woods"
}
],
"person_names": [
"Alice Woods"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_1_-_Workshop-44"
},
{
"guid": "27476af5-ec4f-5925-877a-eec1750234f4",
"id": "58",
"room": "Room 1 - Workshop",
"title": "WikiTutuwuhan: Documenting West Java’s Botanical Treasures in Wikimedia Projects",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T14:45:00+08:00",
"start": "14:45",
"duration": "00:15",
"abstract": "The availability of botanical documentation for West Java on Wikimedia projects is highly limited, particularly regarding freely licensed photographs and information in Sundanese. To address this gap, we initiated WikiTutuwuhan, a project documenting local and alien plant species in West Java. The primary goal is to enhance botanical literacy and accessibility for the public, especially Sundanese speakers through Wikimedia platforms. Through a field documentation approach, literature study, and collaboration with Wikimedia Bandung volunteers, we successfully documented 186 different plant species on Wikimedia Commons, represented by a total of 542 photographs. In addition, we created 60 new articles on local and alien plant species on the Sundanese Wikipedia, consisting of 40 articles written by the project team and 20 articles contributed by volunteers of Wikimedia Bandung. This open-access resource is expected to serve as a scientific reference, teaching material, and field guide, helping educators, students, researchers, and the general public with a vital bridge to better identify and understand the botanical diversity of West Java.",
"slug": "eseapcon-58-wikitutuwuhan-documenting-west-java-s-botanical-treasures-in-wikimedia-projects",
"track": "Knowledge Equity \u0026 Representation",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/H9JCWN/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/H9JCWN/feedback/",
"logo": "",
"persons": [
{
"id": "69",
"name": "A2613"
},
{
"id": "68",
"name": "Rafli Noer Khairam"
}
],
"person_names": [
"A2613",
"Rafli Noer Khairam"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_1_-_Workshop-58"
},
{
"guid": "805f134f-9ddd-5a57-a64f-b983498c303a",
"id": "108",
"room": "Room 1 - Workshop",
"title": "Taiwanese Taigi Story: the New Generation of Wikimedia Contributors",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T15:00:00+08:00",
"start": "15:00",
"duration": "00:15",
"abstract": "There is a diverse language scene in Taiwan. Sinitic languages, for example, Taiwanese Taigi, Taiwanese Hakka, and Bangoe, are spoken in Taiwan. Taiwanese Taigi, related to Chinese Banlam, Southeast Asia Hokkien, is one of the National Language of Taiwan. But for the Wikimeida projects related to Taiwanese Taigi, it is shadowed by the domination of Taiwanese Mandarin. In this talk, I want to tell everybody about the recent promotion of Taiwanese Taigi on Holopedia(zh-min-nan Wikipedia), Wikidata, and Wiktionary.",
"slug": "eseapcon-108-taiwanese-taigi-story-the-new-generation-of-wikimedia-contributors",
"track": "Diversity \u0026 Inclusion",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/LFV39K/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/LFV39K/feedback/",
"logo": "",
"persons": [
{
"id": "29",
"name": "Dennis Raylin Chen"
}
],
"person_names": [
"Dennis Raylin Chen"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_1_-_Workshop-108"
},
{
"guid": "f0a8c34e-2aeb-5159-8da5-2bb28b98c468",
"id": "60",
"room": "Room 1 - Workshop",
"title": "How to be an translation admin",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-17T15:30:00+08:00",
"start": "15:30",
"duration": "00:30",
"abstract": "On multilingual projects such as metawiki, commonswiki, wikidata, there may be a need for translation of content to be done. But first, we need more translation admins.",
"slug": "eseapcon-60-how-to-be-an-translation-admin",
"track": "Capacity Building",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/JYNFKE/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/JYNFKE/feedback/",
"logo": "",
"persons": [
{
"id": "70",
"name": "Robert Sim"
}
],
"person_names": [
"Robert Sim"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_1_-_Workshop-60"
}
]
},
{
"name": "Room 2 - Women/Youth/ESEAP Hub",
"guid": "b7c77ed5-fc73-5425-b3b0-41c58cc7357a",
"events": [
{
"guid": "df8a0e88-aead-5c16-8706-5f0371f26fbb",
"id": "926",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "ESEAP Hub Update \u0026 Overview of the Day",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-17T09:00:00+08:00",
"start": "09:00",
"duration": "01:00",
"abstract": "Latest update for ESEAP Hub and its overview",
"slug": "eseapcon-926-eseap-hub-update-overview-of-the-day",
"track": "ESEAP Hub",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/8RX8NZ/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/8RX8NZ/feedback/",
"logo": "",
"persons": [
{
"id": "26",
"name": "ESEAP Hub Steering Committee"
}
],
"person_names": [
"ESEAP Hub Steering Committee"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_2_-_Women/Youth/ESEAP_Hub-926"
},
{
"guid": "c324276a-5485-586d-83c3-ffbe84c5c089",
"id": "33",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Field Building",
"subtitle": "",
"type": "Lectures",
"date": "2026-05-17T10:00:00+08:00",
"start": "10:00",
"duration": "00:30",
"abstract": "In our journey to refine our resourcing model, one of the key questions that we are asking is: \"How do we better support organisation changes and growth so that we can provide the support that is needed when it’s needed? \". This session is a look back on the discovery process, dialogues and research that is shaping our thinking.",
"slug": "eseapcon-33-field-building",
"track": "Capacity Building",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/CA7G3X/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/CA7G3X/feedback/",
"logo": "",
"persons": [
{
"id": "47",
"name": "Jacqueline Chen"
}
],
"person_names": [
"Jacqueline Chen"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_2_-_Women/Youth/ESEAP_Hub-33"
},
{
"guid": "ed1520fa-2747-5f74-8ee7-dff9b469374f",
"id": "927",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Future of ESEAP Hub: Year 2 Onwards",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-17T10:45:00+08:00",
"start": "10:45",
"duration": "01:15",
"abstract": "Future plan for ESEAP Hub in its second year",
"slug": "eseapcon-927-future-of-eseap-hub-year-2-onwards",
"track": "ESEAP Hub",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/PQYYHB/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/PQYYHB/feedback/",
"logo": "",
"persons": [
{
"id": "26",
"name": "ESEAP Hub Steering Committee"
}
],
"person_names": [
"ESEAP Hub Steering Committee"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_2_-_Women/Youth/ESEAP_Hub-927"
},
{
"guid": "abf1d147-414a-5f76-a5ba-16204326ea3d",
"id": "928",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "ESEAP Hub Handbook Launch + Outreach Sharing Session and Learning",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-17T13:00:00+08:00",
"start": "13:00",
"duration": "01:00",
"abstract": "The launch of ESEAP Hub handbook and sharing of outreach",
"slug": "eseapcon-928-eseap-hub-handbook-launch-outreach-sharing-session-and-learning",
"track": "ESEAP Hub",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/TFFBBH/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/TFFBBH/feedback/",
"logo": "",
"persons": [
{
"id": "26",
"name": "ESEAP Hub Steering Committee"
}
],
"person_names": [
"ESEAP Hub Steering Committee"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_2_-_Women/Youth/ESEAP_Hub-928"
},
{
"guid": "2a90ec11-0e56-5f6b-98d9-653523282b98",
"id": "73",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "Some Wild Ideas for future ESEAP collaborative activities",
"subtitle": "",
"type": "Training and/or Workshop",
"date": "2026-05-17T14:00:00+08:00",
"start": "14:00",
"duration": "00:45",
"abstract": "Get together in a workshop with other conference participants to share some Wild Ideas: about how Wikimedians living or interested in the ESEAP region might collaborate in future with a view to creating more content about the region for various Wikimedia platforms (not just Wikipedia).",
"slug": "eseapcon-73-some-wild-ideas-for-future-eseap-collaborative-activities",
"track": "Wild Ideas \u0026 Other",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/M3QUZD/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/M3QUZD/feedback/",
"logo": "",
"persons": [
{
"id": "76",
"name": "Bahnfrend"
}
],
"person_names": [
"Bahnfrend"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_2_-_Women/Youth/ESEAP_Hub-73"
},
{
"guid": "4c64eafd-8d03-597e-8530-646e211e7a03",
"id": "931",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "ESEAP Hub-related Translation and Feedback",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-17T14:45:00+08:00",
"start": "14:45",
"duration": "00:30",
"abstract": "Having the various translated version for the ESEAP Hub details",
"slug": "eseapcon-931-eseap-hub-related-translation-and-feedback",
"track": "ESEAP Hub",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/RC7TU3/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/RC7TU3/feedback/",
"logo": "",
"persons": [
{
"id": "26",
"name": "ESEAP Hub Steering Committee"
}
],
"person_names": [
"ESEAP Hub Steering Committee"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_2_-_Women/Youth/ESEAP_Hub-931"
},
{
"guid": "1be9db28-aa29-529f-a079-12f38a3ab144",
"id": "932",
"room": "Room 2 - Women/Youth/ESEAP Hub",
"title": "ESEAP Hub Round Up",
"subtitle": "",
"type": "Roundtable",
"date": "2026-05-17T15:30:00+08:00",
"start": "15:30",
"duration": "00:30",
"abstract": "Conclusion for the day about ESEAP Hub",
"slug": "eseapcon-932-eseap-hub-round-up",
"track": "ESEAP Hub",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/VU3QL8/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/VU3QL8/feedback/",
"logo": "",
"persons": [
{
"id": "26",
"name": "ESEAP Hub Steering Committee"
}
],
"person_names": [
"ESEAP Hub Steering Committee"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Room_2_-_Women/Youth/ESEAP_Hub-932"
}
]
},
{
"name": "Out of venue",
"guid": "625ea241-8b39-58f1-9029-68f2b0341dbe",
"events": [
{
"guid": "43ff4088-17df-522b-a131-a2fe35fb9768",
"id": "935",
"room": "Out of venue",
"title": "Cultural event (Day 3)",
"subtitle": "",
"type": "Conference activity",
"date": "2026-05-17T14:00:00+08:00",
"start": "14:00",
"duration": "01:00",
"abstract": "TBC",
"slug": "eseapcon-935-cultural-event-day-3",
"track": "",
"language": "en",
"url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/DBKL7W/",
"feedback_url": "https://wikimedia.eventyay.com/eseap/eseapcon/talk/DBKL7W/feedback/",
"logo": "",
"persons": [
{
"id": "2817",
"name": "ESEAP Conference 2026 COT"
},
{
"id": "3455",
"name": "Reke"
}
],
"person_names": [
"ESEAP Conference 2026 COT",
"Reke"
],
"etherpad": "https://etherpad.wikimedia.org/p/ESEAPCon26-day-3-Out_of_venue-935"
}
]
}
]
}
]
}
kkx1m26js792gjwhzva3eorgpph043x
Module:Eventyay schedule
828
175003
739210
2026-04-23T21:07:20Z
Robertsky
51025
Created page with "local p = {} local DEFAULT_DATA_PAGE = 'User:Robertsky/ESEAPConf2026-scehdule.json' local function trim(s) if type(s) ~= 'string' then return s end return mw.text.trim(s) end local function isBlank(s) return s == nil or trim(s) == '' end local function esc(s) if s == nil then return '' end return tostring(s) end local function normalizeDayKey(day) if not day then return nil end day = tostring(day) day = mw.ustring.lower(trim(day)) if day == '1' o..."
739210
Scribunto
text/plain
local p = {}
local DEFAULT_DATA_PAGE = 'User:Robertsky/ESEAPConf2026-scehdule.json'
local function trim(s)
if type(s) ~= 'string' then
return s
end
return mw.text.trim(s)
end
local function isBlank(s)
return s == nil or trim(s) == ''
end
local function esc(s)
if s == nil then
return ''
end
return tostring(s)
end
local function normalizeDayKey(day)
if not day then
return nil
end
day = tostring(day)
day = mw.ustring.lower(trim(day))
if day == '1' or day == 'day-1' or day == 'day 1' then
return '1'
elseif day == '2' or day == 'day-2' or day == 'day 2' then
return '2'
elseif day == '3' or day == 'day-3' or day == 'day 3' then
return '3'
end
local num = mw.ustring.match(day, '(%d+)')
return num
end
local function splitDuration(duration)
if isBlank(duration) then
return nil, nil
end
local h, m = tostring(duration):match('^(%d%d):(%d%d)$')
if not h then
return nil, nil
end
return tonumber(h), tonumber(m)
end
local function addDuration(startTime, duration)
if isBlank(startTime) or isBlank(duration) then
return ''
end
local sh, sm = tostring(startTime):match('^(%d%d):(%d%d)$')
if not sh then
return ''
end
local dh, dm = splitDuration(duration)
if not dh then
return ''
end
local total = tonumber(sh) * 60 + tonumber(sm) + dh * 60 + dm
local eh = math.floor(total / 60) % 24
local em = total % 60
return string.format('%02d:%02d', eh, em)
end
local function formatTimeRange(event)
local startTime = event.start or ''
local endTime = addDuration(event.start, event.duration)
if startTime ~= '' and endTime ~= '' then
return startTime .. '–' .. endTime
end
if startTime ~= '' then
return startTime
end
return ''
end
local function joinNames(names)
if type(names) ~= 'table' or #names == 0 then
return ''
end
return table.concat(names, ', ')
end
local function makeLink(url, label)
if isBlank(url) then
return esc(label or '')
end
return string.format('[%s %s]', tostring(url), tostring(label or url))
end
local function makeEventCellWikitext(event)
local bits = {}
local title = event.title or '(Untitled)'
local eventUrl = event.url or ''
local etherpad = event.etherpad or ''
local track = event.track or ''
local sessionType = event.type or ''
local speakers = ''
if type(event.person_names) == 'table' and #event.person_names > 0 then
speakers = joinNames(event.person_names)
elseif type(event.persons) == 'table' and #event.persons > 0 then
local names = {}
for _, person in ipairs(event.persons) do
if type(person) == 'table' and not isBlank(person.name) then
table.insert(names, person.name)
elseif type(person) == 'string' and not isBlank(person) then
table.insert(names, person)
end
end
speakers = joinNames(names)
end
table.insert(bits, "'''"
.. (not isBlank(eventUrl) and makeLink(eventUrl, title) or esc(title))
.. "'''")
if not isBlank(track) then
table.insert(bits, "'''Track:''' " .. esc(track))
end
if not isBlank(speakers) then
table.insert(bits, "'''Speakers:''' " .. esc(speakers))
end
if not isBlank(sessionType) then
table.insert(bits, "'''Session type:''' " .. esc(sessionType))
end
if not isBlank(eventUrl) then
table.insert(bits, "'''Eventyay:''' " .. makeLink(eventUrl, 'session page'))
end
if not isBlank(etherpad) then
table.insert(bits, "'''Etherpad:''' " .. makeLink(etherpad, 'notes'))
end
return table.concat(bits, '<br />')
end
local function loadDataPage(pageName)
pageName = pageName or DEFAULT_DATA_PAGE
local ok, data = pcall(mw.loadJsonData, pageName)
if ok and type(data) == 'table' then
return data
end
if mw.ext and mw.ext.data and mw.ext.data.get then
local title = pageName
title = mw.ustring.gsub(title, '^Data:', '')
local ok2, data2 = pcall(mw.ext.data.get, title)
if ok2 and type(data2) == 'table' then
return data2
end
end
error('Unable to load schedule data from ' .. tostring(pageName))
end
local function getDayData(data, wantedDay)
if type(data) ~= 'table' or type(data.days) ~= 'table' then
return nil
end
local wanted = normalizeDayKey(wantedDay)
for _, dayObj in ipairs(data.days) do
local idx = normalizeDayKey(dayObj.index)
local label = normalizeDayKey(dayObj.day_label)
if wanted == idx or wanted == label then
return dayObj
end
end
return nil
end
local function collectRowsForDay(dayObj)
local rows = {}
if type(dayObj) ~= 'table' or type(dayObj.rooms) ~= 'table' then
return rows
end
for _, room in ipairs(dayObj.rooms) do
local roomName = room.name or ''
if type(room.events) == 'table' then
for _, event in ipairs(room.events) do
table.insert(rows, {
sortStart = event.start or '',
time = formatTimeRange(event),
room = roomName,
eventWikitext = makeEventCellWikitext(event),
})
end
end
end
table.sort(rows, function(a, b)
if a.sortStart == b.sortStart then
return (a.room or '') < (b.room or '')
end
return (a.sortStart or '') < (b.sortStart or '')
end)
return rows
end
local function renderDayTable(dayObj, args)
local rows = collectRowsForDay(dayObj)
local root = mw.html.create('table')
root:addClass('wikitable')
root:addClass('sortable')
root:addClass('plainrowheaders')
root:css('width', '100%')
local thead = root:tag('tr')
thead:tag('th'):wikitext('Time')
thead:tag('th'):wikitext('Room')
thead:tag('th'):wikitext('Activity')
if #rows == 0 then
local tr = root:tag('tr')
tr:tag('td')
:attr('colspan', 3)
:wikitext("''No sessions found for this day.''")
return tostring(root)
end
for _, row in ipairs(rows) do
local tr = root:tag('tr')
tr:tag('td'):wikitext(row.time)
tr:tag('td'):wikitext(row.room)
tr:tag('td'):wikitext(row.eventWikitext)
end
return tostring(root)
end
function p.day(frame)
local args = frame:getParent() and frame:getParent().args or frame.args
local day = args.day or args[1]
local dataPage = args.data or DEFAULT_DATA_PAGE
if isBlank(day) then
return '<strong class="error">Missing day parameter.</strong>'
end
local data = loadDataPage(dataPage)
local dayObj = getDayData(data, day)
if not dayObj then
return '<strong class="error">No data found for day ' .. esc(day) .. '.</strong>'
end
local out = {}
table.insert(out, "'''"
.. esc((data.conference and data.conference.title) or 'Conference schedule')
.. ' — Day ' .. esc(dayObj.index)
.. "'''")
if not isBlank(dayObj.date) then
table.insert(out, '<div>' .. esc(dayObj.date) .. '</div>')
end
table.insert(out, renderDayTable(dayObj, args))
return table.concat(out, '\n')
end
function p.days(frame)
local args = frame:getParent() and frame:getParent().args or frame.args
local dataPage = args.data or DEFAULT_DATA_PAGE
local data = loadDataPage(dataPage)
if type(data) ~= 'table' or type(data.days) ~= 'table' then
return '<strong class="error">Invalid schedule data.</strong>'
end
local out = {}
for _, dayObj in ipairs(data.days) do
table.insert(out, '== Day ' .. esc(dayObj.index) .. ' ==')
if not isBlank(dayObj.date) then
table.insert(out, '<div>' .. esc(dayObj.date) .. '</div>')
end
table.insert(out, renderDayTable(dayObj, args))
end
return table.concat(out, '\n')
end
function p.debug(frame)
local args = frame:getParent() and frame:getParent().args or frame.args
local dataPage = args.data or DEFAULT_DATA_PAGE
local data = loadDataPage(dataPage)
return mw.text.jsonEncode(data)
end
return p
7jpwh10dy4p6oriw1tvqafqediqvw19
739212
739210
2026-04-23T21:11:11Z
Robertsky
51025
739212
Scribunto
text/plain
local p = {}
local DEFAULT_DATA_PAGE = 'Data:ESEAP_Conference_2026/schedule.json'
local function trim(s)
if type(s) ~= 'string' then
return s
end
return mw.text.trim(s)
end
local function isBlank(s)
return s == nil or trim(s) == ''
end
local function esc(s)
if s == nil then
return ''
end
return tostring(s)
end
local function getArgs(frame)
local args = {}
for k, v in pairs(frame.args or {}) do
args[k] = v
end
local parent = frame:getParent()
if parent then
for k, v in pairs(parent.args or {}) do
if args[k] == nil or args[k] == '' then
args[k] = v
end
end
end
return args
end
local function normalizeDayKey(day)
if not day then
return nil
end
day = tostring(day)
day = mw.ustring.lower(trim(day))
if day == '1' or day == 'day-1' or day == 'day 1' then
return '1'
elseif day == '2' or day == 'day-2' or day == 'day 2' then
return '2'
elseif day == '3' or day == 'day-3' or day == 'day 3' then
return '3'
end
local num = mw.ustring.match(day, '(%d+)')
return num
end
local function splitDuration(duration)
if isBlank(duration) then
return nil, nil
end
local h, m = tostring(duration):match('^(%d%d):(%d%d)$')
if not h then
return nil, nil
end
return tonumber(h), tonumber(m)
end
local function addDuration(startTime, duration)
if isBlank(startTime) or isBlank(duration) then
return ''
end
local sh, sm = tostring(startTime):match('^(%d%d):(%d%d)$')
if not sh then
return ''
end
local dh, dm = splitDuration(duration)
if not dh then
return ''
end
local total = tonumber(sh) * 60 + tonumber(sm) + dh * 60 + dm
local eh = math.floor(total / 60) % 24
local em = total % 60
return string.format('%02d:%02d', eh, em)
end
local function formatTimeRange(event)
local startTime = event.start or ''
local endTime = addDuration(event.start, event.duration)
if startTime ~= '' and endTime ~= '' then
return startTime .. '–' .. endTime
end
if startTime ~= '' then
return startTime
end
return ''
end
local function joinNames(names)
if type(names) ~= 'table' or #names == 0 then
return ''
end
return table.concat(names, ', ')
end
local function makeLink(url, label)
if isBlank(url) then
return esc(label or '')
end
return string.format('[%s %s]', tostring(url), tostring(label or url))
end
local function makeEventCellWikitext(event)
local bits = {}
local title = event.title or '(Untitled)'
local eventUrl = event.url or ''
local etherpad = event.etherpad or ''
local track = event.track or ''
local sessionType = event.type or ''
local speakers = ''
if type(event.person_names) == 'table' and #event.person_names > 0 then
speakers = joinNames(event.person_names)
elseif type(event.persons) == 'table' and #event.persons > 0 then
local names = {}
for _, person in ipairs(event.persons) do
if type(person) == 'table' and not isBlank(person.name) then
table.insert(names, person.name)
elseif type(person) == 'string' and not isBlank(person) then
table.insert(names, person)
end
end
speakers = joinNames(names)
end
table.insert(bits, "'''" .. (not isBlank(eventUrl) and makeLink(eventUrl, title) or esc(title)) .. "'''")
if not isBlank(track) then
table.insert(bits, "'''Track:''' " .. esc(track))
end
if not isBlank(speakers) then
table.insert(bits, "'''Speakers:''' " .. esc(speakers))
end
if not isBlank(sessionType) then
table.insert(bits, "'''Session type:''' " .. esc(sessionType))
end
if not isBlank(eventUrl) then
table.insert(bits, "'''Eventyay:''' " .. makeLink(eventUrl, 'session page'))
end
if not isBlank(etherpad) then
table.insert(bits, "'''Etherpad:''' " .. makeLink(etherpad, 'notes'))
end
return table.concat(bits, '<br />')
end
local function loadDataPage(pageName)
pageName = pageName or DEFAULT_DATA_PAGE
local ok, data = pcall(mw.loadJsonData, pageName)
if ok and type(data) == 'table' then
return data
end
if mw.ext and mw.ext.data and mw.ext.data.get then
local title = pageName
title = mw.ustring.gsub(title, '^Data:', '')
local ok2, data2 = pcall(mw.ext.data.get, title)
if ok2 and type(data2) == 'table' then
return data2
end
end
error('Unable to load schedule data from ' .. tostring(pageName))
end
local function getDayData(data, wantedDay)
if type(data) ~= 'table' or type(data.days) ~= 'table' then
return nil
end
local wanted = normalizeDayKey(wantedDay)
for _, dayObj in ipairs(data.days) do
local idx = normalizeDayKey(dayObj.index)
local label = normalizeDayKey(dayObj.day_label)
if wanted == idx or wanted == label then
return dayObj
end
end
return nil
end
local function collectRowsForDay(dayObj)
local rows = {}
if type(dayObj) ~= 'table' or type(dayObj.rooms) ~= 'table' then
return rows
end
for _, room in ipairs(dayObj.rooms) do
local roomName = room.name or ''
if type(room.events) == 'table' then
for _, event in ipairs(room.events) do
table.insert(rows, {
sortStart = event.start or '',
time = formatTimeRange(event),
room = roomName,
eventWikitext = makeEventCellWikitext(event),
})
end
end
end
table.sort(rows, function(a, b)
if a.sortStart == b.sortStart then
return (a.room or '') < (b.room or '')
end
return (a.sortStart or '') < (b.sortStart or '')
end)
return rows
end
local function renderDayTable(dayObj)
local rows = collectRowsForDay(dayObj)
local root = mw.html.create('table')
root:addClass('wikitable')
root:addClass('sortable')
root:addClass('plainrowheaders')
root:css('width', '100%')
local header = root:tag('tr')
header:tag('th'):wikitext('Time')
header:tag('th'):wikitext('Room')
header:tag('th'):wikitext('Activity')
if #rows == 0 then
local tr = root:tag('tr')
tr:tag('td')
:attr('colspan', 3)
:wikitext("''No sessions found for this day.''")
return tostring(root)
end
for _, row in ipairs(rows) do
local tr = root:tag('tr')
tr:tag('td'):wikitext(row.time)
tr:tag('td'):wikitext(row.room)
tr:tag('td'):wikitext(row.eventWikitext)
end
return tostring(root)
end
function p.day(frame)
local args = getArgs(frame)
local day = args.day or args[1]
local dataPage = args.data or DEFAULT_DATA_PAGE
if isBlank(day) then
return '<strong class="error">Missing day parameter.</strong>'
end
local data = loadDataPage(dataPage)
local dayObj = getDayData(data, day)
if not dayObj then
return '<strong class="error">No data found for day ' .. esc(day) .. '.</strong>'
end
local out = {}
table.insert(out, "'''" .. esc((data.conference and data.conference.title) or 'Conference schedule') .. ' — Day ' .. esc(dayObj.index) .. "'''")
if not isBlank(dayObj.date) then
table.insert(out, '<div>' .. esc(dayObj.date) .. '</div>')
end
table.insert(out, renderDayTable(dayObj))
return table.concat(out, '\n')
end
function p.days(frame)
local args = getArgs(frame)
local dataPage = args.data or DEFAULT_DATA_PAGE
local data = loadDataPage(dataPage)
if type(data) ~= 'table' or type(data.days) ~= 'table' then
return '<strong class="error">Invalid schedule data.</strong>'
end
local out = {}
for _, dayObj in ipairs(data.days) do
table.insert(out, '== Day ' .. esc(dayObj.index) .. ' ==')
if not isBlank(dayObj.date) then
table.insert(out, '<div>' .. esc(dayObj.date) .. '</div>')
end
table.insert(out, renderDayTable(dayObj))
end
return table.concat(out, '\n')
end
function p.debug(frame)
local args = getArgs(frame)
local dataPage = args.data or DEFAULT_DATA_PAGE
local data = loadDataPage(dataPage)
return mw.text.jsonEncode(data)
end
return p
t3cjyo6823hbs40n83e3ecev0f2ak8f
739213
739212
2026-04-23T21:11:34Z
Robertsky
51025
739213
Scribunto
text/plain
local p = {}
local DEFAULT_DATA_PAGE = 'User:Robertsky/ESEAPConf2026-scehdule.json'
local function trim(s)
if type(s) ~= 'string' then
return s
end
return mw.text.trim(s)
end
local function isBlank(s)
return s == nil or trim(s) == ''
end
local function esc(s)
if s == nil then
return ''
end
return tostring(s)
end
local function getArgs(frame)
local args = {}
for k, v in pairs(frame.args or {}) do
args[k] = v
end
local parent = frame:getParent()
if parent then
for k, v in pairs(parent.args or {}) do
if args[k] == nil or args[k] == '' then
args[k] = v
end
end
end
return args
end
local function normalizeDayKey(day)
if not day then
return nil
end
day = tostring(day)
day = mw.ustring.lower(trim(day))
if day == '1' or day == 'day-1' or day == 'day 1' then
return '1'
elseif day == '2' or day == 'day-2' or day == 'day 2' then
return '2'
elseif day == '3' or day == 'day-3' or day == 'day 3' then
return '3'
end
local num = mw.ustring.match(day, '(%d+)')
return num
end
local function splitDuration(duration)
if isBlank(duration) then
return nil, nil
end
local h, m = tostring(duration):match('^(%d%d):(%d%d)$')
if not h then
return nil, nil
end
return tonumber(h), tonumber(m)
end
local function addDuration(startTime, duration)
if isBlank(startTime) or isBlank(duration) then
return ''
end
local sh, sm = tostring(startTime):match('^(%d%d):(%d%d)$')
if not sh then
return ''
end
local dh, dm = splitDuration(duration)
if not dh then
return ''
end
local total = tonumber(sh) * 60 + tonumber(sm) + dh * 60 + dm
local eh = math.floor(total / 60) % 24
local em = total % 60
return string.format('%02d:%02d', eh, em)
end
local function formatTimeRange(event)
local startTime = event.start or ''
local endTime = addDuration(event.start, event.duration)
if startTime ~= '' and endTime ~= '' then
return startTime .. '–' .. endTime
end
if startTime ~= '' then
return startTime
end
return ''
end
local function joinNames(names)
if type(names) ~= 'table' or #names == 0 then
return ''
end
return table.concat(names, ', ')
end
local function makeLink(url, label)
if isBlank(url) then
return esc(label or '')
end
return string.format('[%s %s]', tostring(url), tostring(label or url))
end
local function makeEventCellWikitext(event)
local bits = {}
local title = event.title or '(Untitled)'
local eventUrl = event.url or ''
local etherpad = event.etherpad or ''
local track = event.track or ''
local sessionType = event.type or ''
local speakers = ''
if type(event.person_names) == 'table' and #event.person_names > 0 then
speakers = joinNames(event.person_names)
elseif type(event.persons) == 'table' and #event.persons > 0 then
local names = {}
for _, person in ipairs(event.persons) do
if type(person) == 'table' and not isBlank(person.name) then
table.insert(names, person.name)
elseif type(person) == 'string' and not isBlank(person) then
table.insert(names, person)
end
end
speakers = joinNames(names)
end
table.insert(bits, "'''" .. (not isBlank(eventUrl) and makeLink(eventUrl, title) or esc(title)) .. "'''")
if not isBlank(track) then
table.insert(bits, "'''Track:''' " .. esc(track))
end
if not isBlank(speakers) then
table.insert(bits, "'''Speakers:''' " .. esc(speakers))
end
if not isBlank(sessionType) then
table.insert(bits, "'''Session type:''' " .. esc(sessionType))
end
if not isBlank(eventUrl) then
table.insert(bits, "'''Eventyay:''' " .. makeLink(eventUrl, 'session page'))
end
if not isBlank(etherpad) then
table.insert(bits, "'''Etherpad:''' " .. makeLink(etherpad, 'notes'))
end
return table.concat(bits, '<br />')
end
local function loadDataPage(pageName)
pageName = pageName or DEFAULT_DATA_PAGE
local ok, data = pcall(mw.loadJsonData, pageName)
if ok and type(data) == 'table' then
return data
end
if mw.ext and mw.ext.data and mw.ext.data.get then
local title = pageName
title = mw.ustring.gsub(title, '^Data:', '')
local ok2, data2 = pcall(mw.ext.data.get, title)
if ok2 and type(data2) == 'table' then
return data2
end
end
error('Unable to load schedule data from ' .. tostring(pageName))
end
local function getDayData(data, wantedDay)
if type(data) ~= 'table' or type(data.days) ~= 'table' then
return nil
end
local wanted = normalizeDayKey(wantedDay)
for _, dayObj in ipairs(data.days) do
local idx = normalizeDayKey(dayObj.index)
local label = normalizeDayKey(dayObj.day_label)
if wanted == idx or wanted == label then
return dayObj
end
end
return nil
end
local function collectRowsForDay(dayObj)
local rows = {}
if type(dayObj) ~= 'table' or type(dayObj.rooms) ~= 'table' then
return rows
end
for _, room in ipairs(dayObj.rooms) do
local roomName = room.name or ''
if type(room.events) == 'table' then
for _, event in ipairs(room.events) do
table.insert(rows, {
sortStart = event.start or '',
time = formatTimeRange(event),
room = roomName,
eventWikitext = makeEventCellWikitext(event),
})
end
end
end
table.sort(rows, function(a, b)
if a.sortStart == b.sortStart then
return (a.room or '') < (b.room or '')
end
return (a.sortStart or '') < (b.sortStart or '')
end)
return rows
end
local function renderDayTable(dayObj)
local rows = collectRowsForDay(dayObj)
local root = mw.html.create('table')
root:addClass('wikitable')
root:addClass('sortable')
root:addClass('plainrowheaders')
root:css('width', '100%')
local header = root:tag('tr')
header:tag('th'):wikitext('Time')
header:tag('th'):wikitext('Room')
header:tag('th'):wikitext('Activity')
if #rows == 0 then
local tr = root:tag('tr')
tr:tag('td')
:attr('colspan', 3)
:wikitext("''No sessions found for this day.''")
return tostring(root)
end
for _, row in ipairs(rows) do
local tr = root:tag('tr')
tr:tag('td'):wikitext(row.time)
tr:tag('td'):wikitext(row.room)
tr:tag('td'):wikitext(row.eventWikitext)
end
return tostring(root)
end
function p.day(frame)
local args = getArgs(frame)
local day = args.day or args[1]
local dataPage = args.data or DEFAULT_DATA_PAGE
if isBlank(day) then
return '<strong class="error">Missing day parameter.</strong>'
end
local data = loadDataPage(dataPage)
local dayObj = getDayData(data, day)
if not dayObj then
return '<strong class="error">No data found for day ' .. esc(day) .. '.</strong>'
end
local out = {}
table.insert(out, "'''" .. esc((data.conference and data.conference.title) or 'Conference schedule') .. ' — Day ' .. esc(dayObj.index) .. "'''")
if not isBlank(dayObj.date) then
table.insert(out, '<div>' .. esc(dayObj.date) .. '</div>')
end
table.insert(out, renderDayTable(dayObj))
return table.concat(out, '\n')
end
function p.days(frame)
local args = getArgs(frame)
local dataPage = args.data or DEFAULT_DATA_PAGE
local data = loadDataPage(dataPage)
if type(data) ~= 'table' or type(data.days) ~= 'table' then
return '<strong class="error">Invalid schedule data.</strong>'
end
local out = {}
for _, dayObj in ipairs(data.days) do
table.insert(out, '== Day ' .. esc(dayObj.index) .. ' ==')
if not isBlank(dayObj.date) then
table.insert(out, '<div>' .. esc(dayObj.date) .. '</div>')
end
table.insert(out, renderDayTable(dayObj))
end
return table.concat(out, '\n')
end
function p.debug(frame)
local args = getArgs(frame)
local dataPage = args.data or DEFAULT_DATA_PAGE
local data = loadDataPage(dataPage)
return mw.text.jsonEncode(data)
end
return p
mbryhvkpozxt5e4fqywrw1hut6b8ews
739214
739213
2026-04-23T21:21:55Z
Robertsky
51025
739214
Scribunto
text/plain
local p = {}
local DEFAULT_DATA_PAGE = 'User:Robertsky/ESEAPConf2026-scehdule.json'
local ROOM_ORDER = {
{ key = 'Main room', label = 'Main room' },
{ key = 'Room 1 - Workshop', label = 'Room 1 (Workshop)' },
{ key = 'Room 2 - Women/Youth/ESEAP Hub', label = 'Room 2 (Women)' },
{ key = 'Out of venue', label = 'Out of venue' },
}
local function trim(s)
if type(s) ~= 'string' then
return s
end
return mw.text.trim(s)
end
local function isBlank(s)
return s == nil or trim(s) == ''
end
local function esc(s)
if s == nil then
return ''
end
return tostring(s)
end
local function getArgs(frame)
local args = {}
for k, v in pairs(frame.args or {}) do
args[k] = v
end
local parent = frame:getParent()
if parent then
for k, v in pairs(parent.args or {}) do
if args[k] == nil or args[k] == '' then
args[k] = v
end
end
end
return args
end
local function normalizeDayKey(day)
if not day then
return nil
end
day = tostring(day)
day = mw.ustring.lower(trim(day))
if day == '1' or day == 'day-1' or day == 'day 1' then
return '1'
elseif day == '2' or day == 'day-2' or day == 'day 2' then
return '2'
elseif day == '3' or day == 'day-3' or day == 'day 3' then
return '3'
end
local num = mw.ustring.match(day, '(%d+)')
return num
end
local function splitDuration(duration)
if isBlank(duration) then
return nil, nil
end
local h, m = tostring(duration):match('^(%d%d):(%d%d)$')
if not h then
return nil, nil
end
return tonumber(h), tonumber(m)
end
local function splitTime(t)
if isBlank(t) then
return nil, nil
end
local h, m = tostring(t):match('^(%d%d):(%d%d)$')
if not h then
return nil, nil
end
return tonumber(h), tonumber(m)
end
local function timeToMinutes(t)
local h, m = splitTime(t)
if not h then
return nil
end
return h * 60 + m
end
local function minutesToTime(total)
total = total % (24 * 60)
if total < 0 then
total = total + (24 * 60)
end
local h = math.floor(total / 60)
local m = total % 60
return string.format('%02d:%02d', h, m)
end
local function addMinutesToTime(startTime, minutes)
local base = timeToMinutes(startTime)
if not base then
return ''
end
return minutesToTime(base + minutes)
end
local function durationToMinutes(duration)
local h, m = splitDuration(duration)
if not h then
return nil
end
return h * 60 + m
end
local function addDuration(startTime, duration)
local dm = durationToMinutes(duration)
if not dm then
return ''
end
return addMinutesToTime(startTime, dm)
end
local function formatTimeRange(startTime, endTime)
if not isBlank(startTime) and not isBlank(endTime) then
return startTime .. '–' .. endTime
end
if not isBlank(startTime) then
return startTime
end
return ''
end
local function formatUtcRange(startTime, endTime)
if isBlank(startTime) then
return ''
end
local utcStart = addMinutesToTime(startTime, -8 * 60)
local utcEnd = ''
if not isBlank(endTime) then
utcEnd = addMinutesToTime(endTime, -8 * 60)
end
if not isBlank(utcStart) and not isBlank(utcEnd) then
return utcStart .. '–' .. utcEnd
end
return utcStart
end
local function joinNames(names)
if type(names) ~= 'table' or #names == 0 then
return ''
end
return table.concat(names, ', ')
end
local function makeLink(url, label)
if isBlank(url) then
return esc(label or '')
end
return string.format('[%s %s]', tostring(url), tostring(label or url))
end
local function makeEventCellWikitext(event)
local bits = {}
local title = event.title or '(Untitled)'
local eventUrl = event.url or ''
local etherpad = event.etherpad or ''
local track = event.track or ''
local sessionType = event.type or ''
local speakers = ''
if type(event.person_names) == 'table' and #event.person_names > 0 then
speakers = joinNames(event.person_names)
elseif type(event.persons) == 'table' and #event.persons > 0 then
local names = {}
for _, person in ipairs(event.persons) do
if type(person) == 'table' and not isBlank(person.name) then
table.insert(names, person.name)
elseif type(person) == 'string' and not isBlank(person) then
table.insert(names, person)
end
end
speakers = joinNames(names)
end
table.insert(bits, "'''" .. (not isBlank(eventUrl) and makeLink(eventUrl, title) or esc(title)) .. "'''")
if not isBlank(track) then
table.insert(bits, "'''Track:''' " .. esc(track))
end
if not isBlank(speakers) then
table.insert(bits, "'''Speakers:''' " .. esc(speakers))
end
if not isBlank(sessionType) then
table.insert(bits, "'''Session type:''' " .. esc(sessionType))
end
if not isBlank(eventUrl) then
table.insert(bits, "'''Eventyay:''' " .. makeLink(eventUrl, 'session page'))
end
if not isBlank(etherpad) then
table.insert(bits, "'''Etherpad:''' " .. makeLink(etherpad, 'notes'))
end
return table.concat(bits, '<br />')
end
local function loadDataPage(pageName)
pageName = pageName or DEFAULT_DATA_PAGE
local ok, data = pcall(mw.loadJsonData, pageName)
if ok and type(data) == 'table' then
return data
end
if mw.ext and mw.ext.data and mw.ext.data.get then
local title = pageName
title = mw.ustring.gsub(title, '^Data:', '')
local ok2, data2 = pcall(mw.ext.data.get, title)
if ok2 and type(data2) == 'table' then
return data2
end
end
error('Unable to load schedule data from ' .. tostring(pageName))
end
local function getDayData(data, wantedDay)
if type(data) ~= 'table' or type(data.days) ~= 'table' then
return nil
end
local wanted = normalizeDayKey(wantedDay)
for _, dayObj in ipairs(data.days) do
local idx = normalizeDayKey(dayObj.index)
local label = normalizeDayKey(dayObj.day_label)
if wanted == idx or wanted == label then
return dayObj
end
end
return nil
end
local function collectRoomEvents(dayObj)
local roomEvents = {}
for _, roomDef in ipairs(ROOM_ORDER) do
roomEvents[roomDef.key] = {}
end
if type(dayObj) ~= 'table' or type(dayObj.rooms) ~= 'table' then
return roomEvents
end
for _, room in ipairs(dayObj.rooms) do
local roomName = room.name or ''
if roomEvents[roomName] and type(room.events) == 'table' then
for _, event in ipairs(room.events) do
local startMin = timeToMinutes(event.start)
local endTime = addDuration(event.start, event.duration)
local endMin = timeToMinutes(endTime)
if startMin and endMin then
local eventCopy = {}
for k, v in pairs(event) do
eventCopy[k] = v
end
eventCopy._startMin = startMin
eventCopy._endMin = endMin
eventCopy._endTime = endTime
table.insert(roomEvents[roomName], eventCopy)
end
end
end
end
for _, roomDef in ipairs(ROOM_ORDER) do
table.sort(roomEvents[roomDef.key], function(a, b)
if a._startMin == b._startMin then
return (a.id or '') < (b.id or '')
end
return a._startMin < b._startMin
end)
end
return roomEvents
end
local function collectBoundaries(roomEvents)
local boundaries = {}
local seen = {}
for _, roomDef in ipairs(ROOM_ORDER) do
local events = roomEvents[roomDef.key] or {}
for _, event in ipairs(events) do
if not seen[event._startMin] then
seen[event._startMin] = true
table.insert(boundaries, event._startMin)
end
if not seen[event._endMin] then
seen[event._endMin] = true
table.insert(boundaries, event._endMin)
end
end
end
table.sort(boundaries)
return boundaries
end
local function countSegmentsCovered(boundaries, startMin, endMin)
local count = 0
for i = 1, #boundaries - 1 do
local segStart = boundaries[i]
local segEnd = boundaries[i + 1]
if segStart >= startMin and segEnd <= endMin then
count = count + 1
end
end
return count
end
local function findStartingEvent(events, segmentStart)
for _, event in ipairs(events) do
if event._startMin == segmentStart then
return event
end
end
return nil
end
local function hasOngoingEvent(events, segmentStart)
for _, event in ipairs(events) do
if event._startMin < segmentStart and event._endMin > segmentStart then
return true
end
end
return false
end
local function buildRowspans(dayObj)
local roomEvents = collectRoomEvents(dayObj)
local boundaries = collectBoundaries(roomEvents)
local rows = {}
if #boundaries < 2 then
return rows
end
for i = 1, #boundaries - 1 do
local segStart = boundaries[i]
local segEnd = boundaries[i + 1]
local row = {
startMin = segStart,
endMin = segEnd,
local_time = formatTimeRange(minutesToTime(segStart), minutesToTime(segEnd)),
utc_time = formatUtcRange(minutesToTime(segStart), minutesToTime(segEnd)),
cells = {},
}
for _, roomDef in ipairs(ROOM_ORDER) do
local events = roomEvents[roomDef.key] or {}
local startingEvent = findStartingEvent(events, segStart)
if startingEvent then
row.cells[roomDef.key] = {
render = true,
rowspan = countSegmentsCovered(boundaries, startingEvent._startMin, startingEvent._endMin),
content = makeEventCellWikitext(startingEvent),
}
elseif hasOngoingEvent(events, segStart) then
row.cells[roomDef.key] = {
render = false,
}
else
row.cells[roomDef.key] = {
render = true,
rowspan = 1,
content = '',
}
end
end
table.insert(rows, row)
end
return rows
end
local function renderPivotTable(dayObj)
local rows = buildRowspans(dayObj)
local root = mw.html.create('table')
root:addClass('wikitable')
root:css('width', '100%')
local header = root:tag('tr')
header:tag('th'):wikitext('Time (UTC+8)')
for _, roomDef in ipairs(ROOM_ORDER) do
header:tag('th'):wikitext(roomDef.label)
end
header:tag('th'):wikitext('Time (UTC)')
if #rows == 0 then
local tr = root:tag('tr')
tr:tag('td')
:attr('colspan', 6)
:wikitext("''No sessions found for this day.''")
return tostring(root)
end
for _, row in ipairs(rows) do
local tr = root:tag('tr')
tr:tag('td'):wikitext(row.local_time)
for _, roomDef in ipairs(ROOM_ORDER) do
local cell = row.cells[roomDef.key]
if cell and cell.render then
local td = tr:tag('td')
if cell.rowspan and cell.rowspan > 1 then
td:attr('rowspan', cell.rowspan)
end
td:wikitext(cell.content or '')
end
end
tr:tag('td'):wikitext(row.utc_time)
end
return tostring(root)
end
function p.day(frame)
local args = getArgs(frame)
local day = args.day or args[1]
local dataPage = args.data or DEFAULT_DATA_PAGE
if isBlank(day) then
return '<strong class="error">Missing day parameter.</strong>'
end
local data = loadDataPage(dataPage)
local dayObj = getDayData(data, day)
if not dayObj then
return '<strong class="error">No data found for day ' .. esc(day) .. '.</strong>'
end
local out = {}
table.insert(out, "'''" .. esc((data.conference and data.conference.title) or 'Conference schedule') .. ' — Day ' .. esc(dayObj.index) .. "'''")
if not isBlank(dayObj.date) then
table.insert(out, '<div>' .. esc(dayObj.date) .. '</div>')
end
table.insert(out, renderPivotTable(dayObj))
return table.concat(out, '\n')
end
function p.days(frame)
local args = getArgs(frame)
local dataPage = args.data or DEFAULT_DATA_PAGE
local data = loadDataPage(dataPage)
if type(data) ~= 'table' or type(data.days) ~= 'table' then
return '<strong class="error">Invalid schedule data.</strong>'
end
local out = {}
for _, dayObj in ipairs(data.days) do
table.insert(out, '== Day ' .. esc(dayObj.index) .. ' ==')
if not isBlank(dayObj.date) then
table.insert(out, '<div>' .. esc(dayObj.date) .. '</div>')
end
table.insert(out, renderPivotTable(dayObj))
end
return table.concat(out, '\n')
end
function p.debug(frame)
local args = getArgs(frame)
local dataPage = args.data or DEFAULT_DATA_PAGE
local data = loadDataPage(dataPage)
return mw.text.jsonEncode(data)
end
return p
lhnvcjacy3mskcv0yxih7jm7trsq5o7
User:Robertsky/sandbox
2
175004
739211
2026-04-23T21:08:01Z
Robertsky
51025
Created page with "{{#invoke:Eventyay schedule|day|1}}"
739211
wikitext
text/x-wiki
{{#invoke:Eventyay schedule|day|1}}
rs5sy634eletxz1i937ext0ecm72cn3
Template:PAGEBANNER
10
175005
739216
2026-04-23T21:50:03Z
Wooze
54732
Created page with "<includeonly> {{#if:{{{1|}}} |{{PAGEBANNER:{{{1}}}|toc={{#if:{{{toc|}}}|{{{toc}}}|yes}}}} |{{PAGEBANNER:|toc=yes}} }} </includeonly> <noinclude> == Usage == This template adds a banner image to the top of a page. === Syntax === <pre> {{PAGEBANNER|Example.jpg}} </pre> === Parameters === ; 1 : Banner image file name (required) ; toc : Show table of contents (yes/no, default: yes) === Example === <pre> {{PAGEBANNER|Landscape.jpg|toc=no}} </pre> </noinclude>"
739216
wikitext
text/x-wiki
<includeonly>
{{#if:{{{1|}}}
|{{PAGEBANNER:{{{1}}}|toc={{#if:{{{toc|}}}|{{{toc}}}|yes}}}}
|{{PAGEBANNER:|toc=yes}}
}}
</includeonly>
<noinclude>
== Usage ==
This template adds a banner image to the top of a page.
=== Syntax ===
<pre>
{{PAGEBANNER|Example.jpg}}
</pre>
=== Parameters ===
; 1 : Banner image file name (required)
; toc : Show table of contents (yes/no, default: yes)
=== Example ===
<pre>
{{PAGEBANNER|Landscape.jpg|toc=no}}
</pre>
</noinclude>
t1qvqi1gzjiuak14veyegovq6sv9dza
Wikipedia:Lexis/Lexis.Dict.Private.M4B8F-ZCA45
4
175006
739220
2026-04-23T22:46:11Z
Plantaest
37055
Tạo từ điển Lexis.Dict.Private.M4B8F-ZCA45 [#Lexis]
739220
json
application/json
{
"id": "Lexis.Dict.Private.M4B8F-ZCA45",
"creator": {
"id": 37055,
"name": "Plantaest"
},
"contributors": [
{
"id": 37055,
"name": "Plantaest"
}
],
"createdAt": "2026-04-23T22:46:10Z",
"updatedAt": "2026-04-23T22:46:10Z",
"type": "private",
"name": "x",
"englishName": "x",
"sourceLanguage": "en",
"targetLanguage": "vi"
}
2cfb7iw6rgsf5hk913sxtsfjmkovkd5
Noreferences
0
175007
739222
2026-04-24T00:51:58Z
Aram
40962
noreferences.py fails to recognize references header if it lacks a trailing newline
739222
wikitext
text/x-wiki
noreferences.py fails to recognize references header if it lacks a trailing newline
== References ==
f6l03a9k7p063rbz78hsxvgutumfayf
739223
739222
2026-04-24T00:59:09Z
Aram
40962
oops, I forgot to add a reference!
739223
wikitext
text/x-wiki
noreferences.py fails to recognize references header if it lacks a trailing newline<ref>ref1</ref>
== References ==
7o7noukte47a4eyfgcpg8r2fsy1i0d4
739224
739223
2026-04-24T01:18:20Z
AramBot
58626
Bot: Adding missing <references /> tag
739224
wikitext
text/x-wiki
noreferences.py fails to recognize references header if it lacks a trailing newline<ref>ref1</ref>
== References ==
<references />
mw11z4fta9y2alpop1c1qynmcx4v3p0
739225
739224
2026-04-24T01:34:03Z
Aram
40962
Undid revision [[Special:Diff/739224|739224]] by [[Special:Contributions/AramBot|AramBot]] ([[User talk:AramBot|talk]])
739225
wikitext
text/x-wiki
noreferences.py fails to recognize references header if it lacks a trailing newline<ref>ref1</ref>
== References ==
7o7noukte47a4eyfgcpg8r2fsy1i0d4
739226
739225
2026-04-24T02:13:27Z
Aram
40962
Yay, it works now for me. [[phab:T424283]]
739226
wikitext
text/x-wiki
noreferences.py fails to recognize references header if it lacks a trailing newline<ref>ref1: [[phab:T424283]]</ref>
== References ==
033xua94acgkcfr0iq0fa099l9yckiv