Wikipedia testwiki https://test.wikipedia.org/wiki/Main_Page MediaWiki 1.45.0-wmf.8 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:Requests/Tools 4 31626 665199 662885 2025-07-03T03:40:15Z MacFan4000 35104 665199 wikitext text/x-wiki <languages/> {{requests}} <translate><!--T:1--> This page lists sites for users to test administrative tools and the [[mw:|MediaWiki]] software in general. However, each site will have its own rules for testing admin-ship.</translate> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !<translate><!--T:2--> Name</translate> !<translate><!--T:3--> MediaWiki version</translate> !<translate><!--T:4--> IRC channel/Discord server</translate> !<translate><!--T:6--> CheckUser</translate> !<translate><!--T:8--> Privacy policy</translate> !<translate><!--T:9--> Bug Tracker/Requests site</translate> !<translate><!--T:10--> VisualEditor</translate> |- | [https://publictestwiki.com/ <translate><!--T:21--> '''Public Test Wiki''' (Miraheze)</translate>] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <translate><!--T:22--> Public Test Wiki's version page</translate>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] <translate><!--T:23--> on Libera</translate> | bgcolor="yellow" | <translate><!--T:25--> Restricted</translate> | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy <translate><!--T:27--> Yes</translate>] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | <translate><!--T:28--> Yes</translate> |- | [https://testwiki.wiki/ '''<translate><!--T:12--> Test Wiki</translate>'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <translate><!--T:13--> Test Wiki's version page</translate>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <translate><!--T:14--> on Libera<br>[https://discord.gg/yBUvasVmt4 Test Wiki] on Discord</translate> | bgcolor="#3E7" | <translate><!--T:16--> Yes (only for self)</translate> | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy <translate><!--T:18--> Yes</translate>] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | <translate><!--T:19--> Yes</translate> |- | [https://www.thetestwiki.org/ '''<translate><!--T:48--> The Test Wiki</translate>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <translate><!--T:49--> The Test Wiki's version page</translate>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <translate><!--T:50--> on freenode</translate> | bgcolor="#3E7" | <translate><!--T:52--> Yes (only for self)</translate> | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy <translate><!--T:54--> Yes, for non-vandals</translate>] | bgcolor="#3E7" | <translate><!--T:55--> [[<tvar name="1">mw:User talk:Skizzerz</tvar>|'''Skizzerz’s talk page'''<br>(MediaWiki)]]</translate> | bgcolor="red" | <translate><!--T:56--> No</translate> |- | [http://testmw.fandom.com/ '''<translate><!--T:39--> Fandom Test Wiki</translate>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <translate><!--T:40--> Fandom Test Wiki's version page</translate>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | <translate><!--T:43--> Restricted</translate> | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy <translate><!--T:45--> Yes</translate>] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<translate><!--T:59--> Fandom Support - Bug Report</translate>]] | bgcolor="#3E7" | <translate><!--T:46--> Yes</translate> |} <translate> ==Notes== <!--T:58--> </translate> <references /> 2gkzya24zg11ql6zlgkbypjyfimcbgu 665200 665199 2025-07-03T03:41:12Z MacFan4000 35104 the test wiki seems broken 665200 wikitext text/x-wiki <languages/> {{requests}} <translate><!--T:1--> This page lists sites for users to test administrative tools and the [[mw:|MediaWiki]] software in general. However, each site will have its own rules for testing admin-ship.</translate> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !<translate><!--T:2--> Name</translate> !<translate><!--T:3--> MediaWiki version</translate> !<translate><!--T:4--> IRC channel/Discord server</translate> !<translate><!--T:6--> CheckUser</translate> !<translate><!--T:8--> Privacy policy</translate> !<translate><!--T:9--> Bug Tracker/Requests site</translate> !<translate><!--T:10--> VisualEditor</translate> |- | [https://publictestwiki.com/ <translate><!--T:21--> '''Public Test Wiki''' (Miraheze)</translate>] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <translate><!--T:22--> Public Test Wiki's version page</translate>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] <translate><!--T:23--> on Libera</translate> | bgcolor="yellow" | <translate><!--T:25--> Restricted</translate> | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy <translate><!--T:27--> Yes</translate>] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | <translate><!--T:28--> Yes</translate> |- | [https://testwiki.wiki/ '''<translate><!--T:12--> Test Wiki</translate>'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <translate><!--T:13--> Test Wiki's version page</translate>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <translate><!--T:14--> on Libera<br>[https://discord.gg/yBUvasVmt4 Test Wiki] on Discord</translate> | bgcolor="#3E7" | <translate><!--T:16--> Yes (only for self)</translate> | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy <translate><!--T:18--> Yes</translate>] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | <translate><!--T:19--> Yes</translate> |- | [https://www.thetestwiki.org/ '''<translate><!--T:48--> The Test Wiki (currently broken)</translate>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <translate><!--T:49--> The Test Wiki's version page</translate>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <translate><!--T:50--> on freenode</translate> | bgcolor="#3E7" | <translate><!--T:52--> Yes (only for self)</translate> | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy <translate><!--T:54--> Yes, for non-vandals</translate>] | bgcolor="#3E7" | <translate><!--T:55--> [[<tvar name="1">mw:User talk:Skizzerz</tvar>|'''Skizzerz’s talk page'''<br>(MediaWiki)]]</translate> | bgcolor="red" | <translate><!--T:56--> No</translate> |- | [http://testmw.fandom.com/ '''<translate><!--T:39--> Fandom Test Wiki</translate>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <translate><!--T:40--> Fandom Test Wiki's version page</translate>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | <translate><!--T:43--> Restricted</translate> | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy <translate><!--T:45--> Yes</translate>] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<translate><!--T:59--> Fandom Support - Bug Report</translate>]] | bgcolor="#3E7" | <translate><!--T:46--> Yes</translate> |} <translate> ==Notes== <!--T:58--> </translate> <references /> sj3fik2ibx4pbrx6q9pcyi87ihcd3z3 Sandbox 0 68971 665184 664682 2025-07-02T15:16:31Z ~2025-115998 69379 665184 wikitext text/x-wiki <noinclude>{{Sandbox}}</noinclude> {{CleanSandbox}} == Please start your testing below this line == * Test. --[[Special:Contributions/&#126;2025-115998|&#126;2025-115998]] ([[User talk:&#126;2025-115998|talk]]) 15:16, 2 July 2025 (UTC) rojlrmyil1flpwv51g8m8kmh81y1f0l 665185 665184 2025-07-02T15:19:09Z ~2025-116658 69381 665185 wikitext text/x-wiki <noinclude>{{Sandbox}}</noinclude> {{CleanSandbox}} == Please start your testing below this line == * Test. --[[Special:Contributions/&#126;2025-115998|&#126;2025-115998]] ([[User talk:&#126;2025-115998|talk]]) 15:16, 2 July 2025 (UTC) * Test. --[[Special:Contributions/&#126;2025-116658|&#126;2025-116658]] ([[User talk:&#126;2025-116658|talk]]) 15:19, 2 July 2025 (UTC) 9r182dhtkuy2lgx5139fvzqc20hgzuz Wikipedia:Requests/Tools/es 4 96433 665208 663085 2025-07-03T03:41:32Z FuzzyBot 18251 Updating to match new version of source page 665208 wikitext text/x-wiki <languages/> {{requests}} En esta página se listan sitios donde los usuarios pueden probar las herramientas administrativas y software [[mw:|MediaWiki]] en general. No obstante, cada sitio contará con sus propias normas para la prueba de la administración. <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !Nombre !Versión de MediaWiki !Canal IRC/server Discord !CheckUser !Política de privacidad !Sitio de seguimiento de incidencias/peticiones !VisualEditor |- | [https://publictestwiki.com/ '''Public Test Wiki''' (Miraheze)] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version Página de versión de Public Test Wiki]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] en Libera | bgcolor="yellow" | Restringido | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy Si] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | Si |- | [https://testwiki.wiki/ '''Test Wiki'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version Página de la versión de Test Wiki]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] en libera<br>[https://discord.gg/yBUvasVmt4 Test Wiki] en Discord | bgcolor="#3E7" | Sí (solo para uno mismo) | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy Si] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | Si |- | [https://www.thetestwiki.org/ '''<span class="mw-translate-fuzzy">The Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version Página de la versión de The Test Wiki]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] en freenode | bgcolor="#3E7" | Sí (solo para uno mismo) | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy Sí, para usuarios que no son vándalos.] | bgcolor="#3E7" | [[mw:User talk:Skizzerz|'''Página de discusión de Skizzerz'''<br>(MediaWiki)]] | bgcolor="red" | No |- | [http://testmw.fandom.com/ '''Fandom Test Wiki'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version Página de versión de Fandom Test Wiki]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | Restringido | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy Si] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|Soporte de Fandom - Reporte de erores]] | bgcolor="#3E7" | Si |} <span id="Notes"></span> == Notas == <references /> o6rbvrylocwsuuvw34kibvjzs24ptct Translations:Wikipedia:Requests/Tools/48/en 1198 96641 665201 362942 2025-07-03T03:41:24Z FuzzyBot 18251 Importing a new version from external source 665201 wikitext text/x-wiki The Test Wiki (currently broken) aefbc7xcpourgkvuddb286k0h691c1p Wikipedia:Requests/Tools/en 4 99989 665207 663084 2025-07-03T03:41:30Z FuzzyBot 18251 Updating to match new version of source page 665207 wikitext text/x-wiki <languages/> {{requests}} This page lists sites for users to test administrative tools and the [[mw:|MediaWiki]] software in general. However, each site will have its own rules for testing admin-ship. <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !Name !MediaWiki version !IRC channel/Discord server !CheckUser !Privacy policy !Bug Tracker/Requests site !VisualEditor |- | [https://publictestwiki.com/ '''Public Test Wiki''' (Miraheze)] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version Public Test Wiki's version page]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] on Libera | bgcolor="yellow" | Restricted | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy Yes] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | Yes |- | [https://testwiki.wiki/ '''Test Wiki'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version Test Wiki's version page]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] on Libera<br>[https://discord.gg/yBUvasVmt4 Test Wiki] on Discord | bgcolor="#3E7" | Yes (only for self) | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy Yes] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | Yes |- | [https://www.thetestwiki.org/ '''The Test Wiki (currently broken)'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version The Test Wiki's version page]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] on freenode | bgcolor="#3E7" | Yes (only for self) | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy Yes, for non-vandals] | bgcolor="#3E7" | [[mw:User talk:Skizzerz|'''Skizzerz’s talk page'''<br>(MediaWiki)]] | bgcolor="red" | No |- | [http://testmw.fandom.com/ '''Fandom Test Wiki'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version Fandom Test Wiki's version page]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | Restricted | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy Yes] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|Fandom Support - Bug Report]] | bgcolor="#3E7" | Yes |} ==Notes== <references /> 1lq3xku7scckthut3eaxv8loehus9mw Apples 0 101423 665192 665062 2025-07-02T20:51:48Z ~2025-117590 69387 665192 wikitext text/x-wiki An '''apple''' is a round, edible fruit produced by an apple tree, a deciduous tree typically growing to 5–12 m (16–39 ft) tall, with a dense, twiggy crown. The leaves are alternately arranged, simple, 2.5–15 cm (1–6 in) long, with serrated margins and slightly downy surfaces. Blossoms appear, with the fruiting bodies maturing in late summer or autumn. The centre of the fruit contains five carpels arranged in a five-pointed star, with each carpel containing one or two seeds. Apples have been grown for thousands of years in Asia and Europe, and were brought to North America by European colonists. Apples were first introduced to Australia in 1788 by English settlers at the Sydney Botanical Gardens. The most popular varieties of apples in the 21st century are Red Delicious, Granny Smith, Golden Delicious, and Fuji. The apple tree is believed to have originated in the region of the Caucasus, between the Black and Caspian seas. It is thought to have been domesticated in Ceeeentral Asia, where its wild ancestors are still found. The earliest evidence of apple cultivation dates back to 6500 BC. when people living in the region of the Caucasus were growing apples. Apples were brought to Europe by the Romans, who introduced the fruit to England and [[Germany]]. The first recorded mention of apples in England was in a 9th-century text, and by the 11th century, apple trees were being grown in monasteries. Apples were brought to North America by European colonists in the 17th century. Today, apples are grown in all temperate regions of the world. The top apple-producing countries are China, the [[United States]], Turkey, [[Italy]], and India. 4ogthhkr0ozrnmtfrk7kwtph5pn22xs Midland Community Unit School District 0 113746 665194 541917 2025-07-02T23:30:56Z Zilant17 29926 665194 wikitext text/x-wiki '''Midland Community Unit School District #7''' is a school district headquartered in [[Sparland, Illinois]].<ref>{{cite web|url=https://www.midland-7.net/|title=Home|publisher=Midland Community Unit School District #7|accessdate=2020-03-29|quote=}}</ref> It operates Midland Elementary School, Midland Middle School, and [[Midland High School (Illinois)|Midland High School]]. Test123 ==History== {{expand section|date=March 2020}} The district formed through an act of consolidation circa 1996. Rolf Sivertsen served as the Midland CUSD superintendent until July 1, 2016 as he moved to [[Canton, Illinois]].<ref name=Smithnewsuper2016>{{cite web|author=Smith, Gary L.|url=https://www.pjstar.com/article/20160517/NEWS/160519447|title=Midland School Boad selects Fairfield principal Bill Wrenn as superintendent|work=[[Peoria Journal Star|Journal Star]]|date=2016-05-17|accessdate=2020-03-29|quote=Sivertsen, [...] will be trying to heal the sometimes bitter geographic divisions in the approximately 20-year-old consolidated district.}}</ref> In 2016 Gary L. Smith of the ''[[Peoria Journal Star|Journal Star]]'' wrote that there were "sometimes bitter geographic divisions" and cited a case where, in an election to build a new school in [[Lacon, Illinois|Lacon]], residents of Lacon gave "overwhelming support" but that people in Sparland and [[Varna, Illinois|Varna]] "strongly opposed" the measure.<ref name=Smithnewsuper2016/> Overall 55% of participants voted in favor in 2016, causing the measure to pass.<ref>{{cite web|url=https://www.pekintimes.com/news/20160315/referendum-for-new-midland-school-in-lacon-passes-by-about-55|title=Referendum for new Midland school in Lacon passes by about 55%|work=[[Pekin Daily Times]]|date=2016-03-15|accessdate=2020-03-29|archive-date=2020-03-29|archive-url=https://web.archive.org/web/20200329181147/https://www.pekintimes.com/news/20160315/referendum-for-new-midland-school-in-lacon-passes-by-about-55|url-status=dead}}</ref> On May 16, 2016 L. William "Bill" Wrenn<ref>{{cite web|url=https://www.pitchfordfuneralhome.com/obituaries/L-William-Bill--Wrenn?obId=10734266|title=L. William "Bill Wrenn|publisher=Pitchford Funeral Home|accessdate=2020-03-29}} - [https://www.centralillinoisproud.com/news/midland-community-superintendent-dies-over-the-weekend-district-has-support-staff-on-hand-this-week/ Linked from this news article]</ref> was selected as the superintendent.<ref>{{cite web|url=https://www.centralillinoisproud.com/news/midland-community-superintendent-dies-over-the-weekend-district-has-support-staff-on-hand-this-week/|title=Midland Community superintendent dies over the weekend, district has support staff on hand this week|work=[[CBS]] Central Illinois Proud news station|date=2020-01-27|accessdate=2020-03-29}}</ref> Wrenn served in this capacity until he died in January 2020.<ref>{{cite web|author=Shelley, Tim|url=https://www.wglt.org/post/midland-superintendent-dies-over-weekend#stream/0|title=Midland Superintendent Dies Over the Weekend |work=[[WGLT]]|date=2020-01-27|accessdate=2020-03-29}}</ref> Wrenn planned to finish his term at the end of the 2019–2020 school year.<ref>{{cite web|author=Smith, Gary L.|url=https://www.pjstar.com/news/20200127/midland-school-district-superintendent-died-over-weekend|title=Midland School District superintendent died over the weekend|work=[[Peoria Journal Star|Journal Star]]|date=2020-01-27|accessdate=2020-03-29}}</ref> ==References== {{reflist}} ==External links== * [https://www.midland-7.net/ Midland Community Unit School District #7] [[Category:School districts in Illinois]] [[Category:Education in Marshall County, Illinois]] [[Category:1996 establishments in Illinois]] {{Illinois-school-stub}}<noinclude> <small>This page was moved from [[:en:Midland Community Unit School District]]. Its edit history can be viewed at [[Midland Community Unit School District/edithistory]]</small></noinclude> q0rvw5viz5fpg7d5q6kk4obgh3stv2f A Matter of Life and Death (play) 0 114486 665193 652149 2025-07-02T23:29:42Z Zilant17 29926 665193 wikitext text/x-wiki {{italic title}} {{other uses|A Matter of Life and Death (disambiguation)}} '''''A Matter of Life and Death''''' is a stage [[adaptation]] by [[Tom Morris (director)|Tom Morris]] and [[Emma Rice (director)|Emma Rice]] of [[Powell and Pressburger]]'s [[A Matter of Life and Death (film)|film of the same name]] for the company [[Kneehigh Theatre]]. Its first run at the [[Royal National Theatre|National Theatre]] lasted from 3 May 2007 to 21 June 2007. Test4567 ==Cast & crew== Taken from the programme of the performance at the [[Olivier Theatre#The building|Olivier Theatre]], [[London]], 12 May 2007. ===Production team=== * Director: Emma Rice * Set Designer: [[Bill Mitchell (designer)|Bill Mitchell]] * Costume Designer: [[Vicki Mortimer]] * Lighting Designer: [[Mark Henderson (lighting designer)|Mark Henderson]] * [[Choreography|Choreographer]]: [[Debra Batton]] & Emma Rice * Music: [[Stu Barker]] * Sound Designer: [[Gareth Fry]] * Projection Designers: [[Jon Driscoll]] & [[Gemma Carrington]] ===Cast=== {| class="wikitable" |- | colspan="2" align="left" | On Earth |- | Peter | [[Tristan Sturrock]] |- | June | [[Lyndsey Marshal]] |- | Bob | [[Craig Johnson (actor)|Craig Johnson]] |- | Girl | [[Debbie Korley]] |- | Frank | [[Douglas Hodge]] |- | Dr McEwan | [[Andy Williams (actor)|Andy Williams]] |- | Mr Archer | [[Chiké Okonkwo]] |- | Harold | [[Mike Shepherd (actor)|Mike Shepherd]] |- | colspan="2" align="left" | Between Life and Death |- | Boy | [[Dan Canham]] |- | Woman | [[Dorothy Atkinson]] |- | Nurse | [[Fiona Chivers]] |- | Nurse | [[Meryl Fernandes]] |- | Nurse | [[Lorraine Stewart]] |- | Nurse | [[Kirsty Woodward]] |- | Patient | [[Jamie Bradley]] |- | Patient | [[Thomas Goodridge]] |- | Patient | [[Pieter Lawman]] |- | Patient | [[Róbert Luckay]] |- | colspan="2" align="left" | In the Other World |- | Conductor 71 | [[Gisli Örn Gardarsson]] |- | Chief Recorder | [[Tamzin Griffin]] |- | First Prosecutor | [[Stuart McLoughlin]] |- | colspan="2" align="left" | All other parts played by members of the Company |- | Musician | [[Stu Barker]] |- | Musician | [[Pete Judge]] |- | Musician | [[Dominic Lawton]] |- | Musician | [[Alex Vann (actor)|Alex Vann]] |- | Musician | [[Michael Vince]] |- |} ==Differences from the film== {{Expand section|date=June 2008}} Though the plot of the adaptation was broadly similar, there are some differences. In the play June, the radio operator, with whom Peter falls in love, was British rather than American, since the company "felt that it would distract attention from the central story and towards the different issues of Anglo-American relations today".[http://arts.guardian.co.uk/theatre/drama/story/0,,2074143,00.html] However, this meant that the courtroom scenes could not include the arguments about [[United Kingdom|Britain]], its historical place in world events and how it is perceived by the rest of the world, and had to be replaced with different arguments about war and the effects of war. For the denouement, Peter's fate was decided by the toss of a coin, rather than by June's offer to change places with him; the end thus varied from performance to performance. Test123. ==Production== The production itself included many coups de theatre to represent things like the ''camera obscura'', the [[table tennis]] game frozen in time and the Stairway to Heaven. Most of the major reviewers seem to have seen it on a night when the toss of the coin determined that Peter would die. This does tend to negate much of what has gone before, all of his struggles to stay alive. Those that saw it on a night when Peter lived usually give a more positive report.{{Citation needed|date=June 2008}} ==Controversy== Though individual assessments varied from [[Nicholas de Jongh]]'s wholly negative account in the [[Evening Standard]] to [[Susannah Clapp]]'s enthusiastic review in [[The Observer]], critical reaction to the play was generally poor. This prompted an attack by National Theatre director [[Nicholas Hytner]] on the major London critics, whom he described as "dead white men"[http://entertainment.timesonline.co.uk/tol/arts_and_entertainment/stage/article1785100.ece] {{Webarchive|url=https://web.archive.org/web/20110809075705/http://entertainment.timesonline.co.uk/tol/arts_and_entertainment/stage/article1785100.ece |date=9 August 2011 }}. His charges of misogyny and prejudice against female directors and new styles of theatre were hotly rebutted by his targets. ==Other productions== A production was staged at [[The Space (Theatre)|The Space]], an arts and community centre on the [[Isle of Dogs]] in London, from 14 to 16 June 2012.<ref>[http://www.offwestend.com/index.php/plays/view/7869 "A Matter of Life and Death, by Tom Morris and Emma Rice at The Space"] {{Webarchive|url=https://web.archive.org/web/20160303231138/http://www.offwestend.com/index.php/plays/view/7869 |date=3 March 2016 }}, ''OffWestEnd.com''. Retrieved 2012-11-02.</ref> ==References== {{reflist}} ==External links== *[http://www.nationaltheatre.org.uk/?lid=23064 National Theatre] *[http://arts.guardian.co.uk/theatre/drama/story/0,,2074143,00.html ''Guardian'' newspaper article] *[https://web.archive.org/web/20070927202716/http://www.officiallondontheatre.co.uk/news/display?contentId=93907 Interview with actor Douglas Hodge] {{Use dmy dates|date=January 2011}} [[Category:2007 plays]] [[Category:Plays based on films]] [[Category:British plays]] [[Category:Existentialist plays]] <noinclude> <small>This page was moved from [[:en:A Matter of Life and Death (play)]]. Its edit history can be viewed at [[A Matter of Life and Death (play)/edithistory]]</small></noinclude> 0mjm7ekm4kp1vowg2p312snldvuec8j Foo 0 116510 665187 660643 2025-07-02T17:12:53Z SCardenas (WMF) 47441 665187 wikitext text/x-wiki {{Short description|foo three: fall of the trees}} Hello, world! temp testing testing123 Temp account edit 3 Temp account on an iPad yay! have you ever eaten a bagel and just '''died?''' 5ab6d7brogg3k2e6p0y6fs7p9sd5kwm Wikipedia:Requests/Tools/ja 4 119544 665211 663088 2025-07-03T03:41:34Z FuzzyBot 18251 Updating to match new version of source page 665211 wikitext text/x-wiki <languages/> {{requests}} このページには、ユーザーが管理ツールとMediaWikiソフトウェア全般をテストするためのサイトがリストされています。ただし、各サイトには、管理シップをテストするための独自のルールがあります。 <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !名前 !バージョン !IRCチャンネル/Discordサーバー !チェックユーザー !プライバシー・ポリシー !バグトラッカー/意見・要望のサイト !ビジュアルエディター |- | [https://publictestwiki.com/ '''公開テストウィキ'''(Miraheze)] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version ℹ️Public Test Wikiのバージョンページ]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] Liberaで | bgcolor="yellow" | 制限 | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy はい] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | はい |- | [https://testwiki.wiki/ '''テストウィキ'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version テストウィキのバージョンページ]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] リベラ 不和で | bgcolor="#3E7" | <span class="mw-translate-fuzzy">はい(自身専用) テストウィキより</span> | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy はい] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | はい |- | [https://www.thetestwiki.org/ '''<span class="mw-translate-fuzzy">テストウィキ</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version テストウィキのバージョンページ]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] フリーノードで | bgcolor="#3E7" | <span class="mw-translate-fuzzy">(自身専用)ですよ</span> | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy はい、不審者でない場合] | bgcolor="#3E7" | [[mw:User talk:Skizzerz|'''Skizzerz's talk page'''<br>(MediaWiki)]] | bgcolor="red" | いいえ |- | [http://testmw.fandom.com/ '''ファンダムテストウィキ'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version ファンダムテストウィキのバージョンページ]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | 制限された | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy はい] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|ファンダムサポート - バグレポート]] | bgcolor="#3E7" | はい |} <span id="Notes"></span> == メモをしてください == <references /> 24vd86a1jkmbo34jg06y66t8cc1vwom Wikipedia:Requests/Tools/fr 4 121058 665209 663086 2025-07-03T03:41:32Z FuzzyBot 18251 Updating to match new version of source page 665209 wikitext text/x-wiki <languages/> {{requests}} Cette page liste les sites pour les utilisateurs qui veulent tester les droits administrateurs et le logiciel [[mw:|MediaWiki]]. Chaque site a ses propres règles pour tester les droits administrateurs. <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !Nom du wiki !Version de MediaWiki !IRC/Discord correspondant !Vérificateur d'adresses IP !Politique de confidentialité !Chasseur de bugs/Site des requêtes !Éditeur Visuel |- | [https://publictestwiki.com/ '''Public Test Wiki''' (Miraheze)] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version Page de version de Public Test Wiki]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] sur Libera | bgcolor="yellow" | Limité | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy Oui] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | Oui |- | [https://testwiki.wiki/ '''Test Wiki'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version Page de version de Test Wiki]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] sur Libera<br>[https://discord.gg/yBUvasVmt4 Test Wiki] sur Discord | bgcolor="#3E7" | Oui (uniquement pour soi) | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy Oui] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | Oui |- | [https://www.thetestwiki.org/ '''<span class="mw-translate-fuzzy">The Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version Page de version de The Test Wiki]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] sur freenode | bgcolor="#3E7" | Oui (uniquement pour soi) | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy Oui, pour les non-vandales] | bgcolor="#3E7" | [[mw:User talk:Skizzerz|page de discussion de Skizzerz<br>(MediaWiki)]] | bgcolor="red" | Non |- | [http://testmw.fandom.com/ '''Wiki de tests Fandom'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version Version du wiki de tests Fandom]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | Limité | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy Oui] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|Support Fandom - Rapporter des problèmes]] | bgcolor="#3E7" | Oui |} <span id="Notes"></span> == Notes == <references /> 5fhg1p0sy0pfse7mm1xxxqftu6d9a22 Wikipedia:Requests/Tools/vi 4 121382 665217 663094 2025-07-03T03:41:38Z FuzzyBot 18251 Updating to match new version of source page 665217 wikitext text/x-wiki <languages/> {{requests}} <span class="mw-translate-fuzzy">Trang này liệt kê các trang web cho người dùng để thử công cụ và phần mềm [[mw:|MediaWiki]] nói chung. Tuy vậy, mỗi trang đều có luật lệ riêng để thử nghiệm quyền bảo quản viên.</span> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !Tên !Phiên bản MediaWiki !<span class="mw-translate-fuzzy">Kênh IRC</span> !CheckUser !Quy định về quyền riêng tư !Nơi track lỗi/Đưa yêu cầu !VisualEditor |- | [https://publictestwiki.com/ '''Wiki thử nghiệm công khai''' (Miraheze)] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span class="mw-translate-fuzzy">Trang phiên bản của Wiki thử nghiệm công khai</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] trên Libera | bgcolor="yellow" | Hạn chế | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy Có] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | Có |- | [https://testwiki.wiki/ '''Test Wiki'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span class="mw-translate-fuzzy">Đặc biệt:Phiên bản của Test Wiki</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span class="mw-translate-fuzzy">trên libera</span> | bgcolor="#3E7" | Có (chỉ cho bạn) | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy Có] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | Có |- | [https://www.thetestwiki.org/ '''<span class="mw-translate-fuzzy">Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span class="mw-translate-fuzzy">Đặc biệt:Phiên bản của Test Wiki</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span class="mw-translate-fuzzy">trên freenode</span> | bgcolor="#3E7" | Có (chỉ cho bạn) | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy Có, cho người không phá hoại] | bgcolor="#3E7" | <span class="mw-translate-fuzzy">[[mw:User talk:Skizzerz|trang thảo luận của Skizzerz]]</span> | bgcolor="red" | Không |- | [http://testmw.fandom.com/ '''<span class="mw-translate-fuzzy">Wiki thử công cụ bảo quản</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span class="mw-translate-fuzzy">Trang phiên bản của Wiki thử nghiệm công cụ bảo quản</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | Hạn chế | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy Có] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | Có |} <span id="Notes"></span> <div class="mw-translate-fuzzy"> == Ghi chú == </div> <references /> l73vfiua74z6kju21qs1yi4rxrftg4n Wikipedia:Requests/Tools/bn 4 123690 665203 663080 2025-07-03T03:41:26Z FuzzyBot 18251 Updating to match new version of source page 665203 wikitext text/x-wiki <languages/> {{requests}} <span class="mw-translate-fuzzy">এই পৃষ্ঠাটি ব্যবহারকারীদের প্রশাসনিক সরঞ্জাম এবং সাধারণভাবে [[mw:|MediaWiki]] সফ্টওয়্যার পরীক্ষা করার জন্য সাইটগুলির তালিকা করে। যাইহোক, প্রশাসক পরীক্ষার জন্য প্রতিটি সাইটের নিজস্ব নিয়ম থাকবে।</span> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !নাম !মিডিয়াউইকি সংস্করণ !<span class="mw-translate-fuzzy">আইআরসি চ্যানেল(গুলি)</span> !ব্যবহারকারী পরীক্ষক !গোপনীয়তা নীতি !<span lang="en" dir="ltr" class="mw-content-ltr">Bug Tracker/Requests site</span> !দৃশ্যমান সম্পাদনা |- | [https://publictestwiki.com/ '''পাবলিক টেস্ট উইকি''' (মিরাহেজ)] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span class="mw-translate-fuzzy">পাবলিক টেস্ট উইকি সংস্করণ পাতা</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] <span class="mw-translate-fuzzy">লিবেরা এ</span> | bgcolor="yellow" | সীমাবদ্ধ | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy হ্যাঁ] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | হ্যাঁ |- | [https://testwiki.wiki/ '''উইকি পরীক্ষা করুন'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span class="mw-translate-fuzzy">উইকির বিশেষ:সংস্করণ পরীক্ষা করুন</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span class="mw-translate-fuzzy">লিবেরা এ</span> | bgcolor="#3E7" | হ্যাঁ (শুধু নিজের জন্য) | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy হ্যাঁ] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | হ্যাঁ |- | [https://www.thetestwiki.org/ '''<span class="mw-translate-fuzzy">টেস্ট উইকি</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span class="mw-translate-fuzzy">টেস্ট উইকির বিশেষ:সংস্করণ</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span class="mw-translate-fuzzy">ফ্রিনোডে</span> | bgcolor="#3E7" | হ্যাঁ (শুধু নিজের জন্য) | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy হ্যাঁ, ধবংসকারীদের ছাড়া] | bgcolor="#3E7" | <span class="mw-translate-fuzzy">[[mw:User talk:Skizzerz|Skizzerz-এর আলাপ পাতা]]</span> | bgcolor="red" | না |- | [http://testmw.fandom.com/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | সীমাবদ্ধ | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy হ্যাঁ] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | হ্যাঁ |} <span id="Notes"></span> <div class="mw-translate-fuzzy"> ==মন্তব্য== </div> <references /> ckhrssm2yenwl5g5x5y4xig1wc1p89i User:SongVĩ.Bot II 2 124239 665186 665042 2025-07-02T17:00:18Z SongVĩ.Bot II 52414 [[User:SongVĩ.Bot II|Task 0]]: Đã 1283 ngày... 665186 wikitext text/x-wiki Cập nhật lần cuối: 03-07-2025 Đã 1283 ngày... iykwx6crr37qfm4rf6w05wec35iju49 Wikipedia:Requests/Tools/zh 4 126035 665218 663095 2025-07-03T03:41:39Z FuzzyBot 18251 Updating to match new version of source page 665218 wikitext text/x-wiki <languages/> {{requests}} <span class="mw-translate-fuzzy">本页列出了供用户测试常规情况下的管理工具和[[mw:|MediaWiki]]软件的网站。</span> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !名稱 !MediaWiki版本 !<span class="mw-translate-fuzzy">IRC頻道</span> !用户查核(<code>CheckUser</code>) !隱私政策 !错误追踪器/请求站点 !可视化編輯器 |- | [https://publictestwiki.com/ '''公众Test Wiki''' (Miraheze)] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span class="mw-translate-fuzzy">公众Test Wiki版本页面</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] 于Libera | bgcolor="yellow" | 受限 | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy 是] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | 是 |- | [https://testwiki.wiki/ '''Test Wiki'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span class="mw-translate-fuzzy">Test Wiki的Special:Version</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span class="mw-translate-fuzzy">在libera上</span> | bgcolor="#3E7" | 是(只有自身) | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy 是] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | 是 |- | [https://www.thetestwiki.org/ '''<span class="mw-translate-fuzzy">The Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span class="mw-translate-fuzzy">The Test Wiki的Special:Version</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span class="mw-translate-fuzzy">于freenode</span> | bgcolor="#3E7" | 是(仅能对自身) | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy 是,对非破坏者] | bgcolor="#3E7" | <span class="mw-translate-fuzzy">[[mw:User talk:Skizzerz|Skizzerz的讨论页]]</span> | bgcolor="red" | 否 |- | [http://testmw.fandom.com/ '''Fandom Test Wiki'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span class="mw-translate-fuzzy">管理工具Wiki版本页面</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | 受限 | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy 是] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | 是 |} <span id="Notes"></span> <div class="mw-translate-fuzzy"> ==註解== </div> <references /> 4t5rvyxv5u9j139jcuyaa99pnzx4g3e Wikipedia:Requests/Tools/ar 4 126036 665204 663079 2025-07-03T03:41:26Z FuzzyBot 18251 Updating to match new version of source page 665204 wikitext text/x-wiki <languages/> {{requests}} aii <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !aii !aii !<span class="mw-translate-fuzzy">قناة (قنوات) IRC</span> !<span lang="en" dir="ltr" class="mw-content-ltr">CheckUser</span> !سياسة الخصوصية !<span lang="en" dir="ltr" class="mw-content-ltr">Bug Tracker/Requests site</span> !<span lang="en" dir="ltr" class="mw-content-ltr">VisualEditor</span> |- | [https://publictestwiki.com/ <span lang="en" dir="ltr" class="mw-content-ltr">'''Public Test Wiki''' (Miraheze)</span>] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span class="mw-translate-fuzzy">PublictEdestWiki صفحة</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] aii | bgcolor="yellow" | https://test.wikipedia.org/w/index.php?title=Special:Translate&group=page-Wikipedia%3ARequests%2FTools&action=page&filter=&language=a | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy نعمhttps://test.wikipedia.org/w/index.php?title=Special:Translate&group=page-Wikipedia%3ARequests%2FTools&action=page&filter=&language=ar] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | https://test.wikipedia.org/w/index.php?title=Special:Translate&group=page-Wikipedia%3ARequests%2FTools&action=page&filter=&language=ar |- | [https://testwiki.wiki/ '''https://test.wikipedia.org/w/index.php?title=Special:Translate&group=page-Wikipedia%3ARequests%2FTools&action=page&filter=&language=ar'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span class="mw-translate-fuzzy">اختبار ويكي الخاص: الإصدار</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span class="mw-translate-fuzzy">على</span> | bgcolor="#3E7" | نعم (للذات فقط | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy نعم] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | نعم |- | [https://www.thetestwiki.org/ '''<span class="mw-translate-fuzzy">اختبار ويكي</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on freenode</span> | bgcolor="#3E7" | نعم (فقط للنفس | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes, for non-vandals</span>] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:User talk:Skizzerz|'''Skizzerz’s talk page'''<br>(MediaWiki)]]</span> | bgcolor="red" | لا |- | [http://testmw.fandom.com/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | تقييد | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy نعم] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | نعم |} <div lang="en" dir="ltr" class="mw-content-ltr"> ==Notes== </div> <references /> q5jqiq4h042t88il6tp5i6gqyvlq7cc Wikipedia:Requests/Tools/hi 4 126037 665210 663087 2025-07-03T03:41:33Z FuzzyBot 18251 Updating to match new version of source page 665210 wikitext text/x-wiki <languages/> {{requests}} <span class="mw-translate-fuzzy">यह पृष्ठ उपयोगकर्ताओं को प्रशासनिक टूल और परीक्षण करने के लिए साइटों को सूचीबद्ध करता है[[mw:|MediaWiki]] सामान्य रूप से सॉफ्टवेयर।</span> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !नाम !मीडियाविकि संस्करण !<span class="mw-translate-fuzzy">आईआरसी चैनल</span> !CheckUser !गोपनीयता नीति !बग ट्रैकर / अनुरोध साइट !VisualEditor |- | [https://publictestwiki.com/ <span class="mw-translate-fuzzy">PublicTestWiki '' '(मीरहेज़)</span>] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span class="mw-translate-fuzzy">PublicTestWiki संस्करण पृष्ठ</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] Libera पर | bgcolor="yellow" | वर्जित | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy हाँ] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | हाँ |- | [https://testwiki.wiki/ '''<span class="mw-translate-fuzzy">व्यवस्थापक उपकरण परीक्षण विकी</span>'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span class="mw-translate-fuzzy">टेस्ट विकी स्पेशल: संस्करण</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span class="mw-translate-fuzzy">Freenode पर</span> | bgcolor="#3E7" | हाँ (केवल स्वयं के लिए) | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy हाँ] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | हाँ |- | [https://www.thetestwiki.org/ '''<span class="mw-translate-fuzzy">टेस्ट विकी</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span class="mw-translate-fuzzy">टेस्ट विकी स्पेशल: संस्करण</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span class="mw-translate-fuzzy">Freenode पर</span> | bgcolor="#3E7" | हाँ (केवल स्वयं के लिए) | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy हां, नॉन-वैंडल्स के लिए] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:User talk:Skizzerz|'''Skizzerz’s talk page'''<br>(MediaWiki)]]</span> | bgcolor="red" | नहीं |- | [http://testmw.fandom.com/ '''<span class="mw-translate-fuzzy">व्यवस्थापक उपकरण विकिया</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span class="mw-translate-fuzzy">व्यवस्थापक उपकरण विकिया संस्करण पृष्ठ</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | वर्जित | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy हाँ] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | हाँ |} <span id="Notes"></span> <div class="mw-translate-fuzzy"> == नोट == </div> <references /> j0wrgevu5bialnjybu9jb1a8w37vwgk Wikipedia:Requests/Tools/uz 4 126038 665216 663093 2025-07-03T03:41:37Z FuzzyBot 18251 Updating to match new version of source page 665216 wikitext text/x-wiki <languages/> {{requests}} <span class="mw-translate-fuzzy">Ushbu sahifada foydalanuvchilarning maʼmuriy asboblarini va umuman [[mw:|MediaWiki]] dasturlarini sinab koʻrishlari mumkin boʻlgan saytlar roʻyxati keltirilgan.</span> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !Nomi !MediaWiki versiyasi !<span class="mw-translate-fuzzy">IRC kanal(lar)</span> !CheckUser !Maxfiylik siyosati !Bug Tracker/Soʻrovlar joyi !Koʻrib tahrirlagich |- | [https://publictestwiki.com/ <span class="mw-translate-fuzzy">'PublicTestWiki''' (Miraheze)</span>] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span class="mw-translate-fuzzy">PublicTestWiki versiyasi sahifasi</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] <span class="mw-translate-fuzzy">freenodeda</span> | bgcolor="yellow" | Cheklangan | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy Ha] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | Ha |- | [https://testwiki.wiki/ '''<span class="mw-translate-fuzzy">Test Wiki Admin asboblari</span>'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span class="mw-translate-fuzzy">Test Wikining Maxsus:Versionʼi</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on Libera<br>[https://discord.gg/yBUvasVmt4 Test Wiki] on Discord</span> | bgcolor="#3E7" | Ha (faqat oʻzi uchun) | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy Ha] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | Ha |- | [https://www.thetestwiki.org/ '''<span class="mw-translate-fuzzy">The Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span class="mw-translate-fuzzy">Test Wikining Maxsus:Versionʼi</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span class="mw-translate-fuzzy">freenodeda</span> | bgcolor="#3E7" | Ha (faqat o‘zi uchun) | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy Ha, vandal bo‘lmaganlar uchun] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:User talk:Skizzerz|'''Skizzerz’s talk page'''<br>(MediaWiki)]]</span> | bgcolor="red" | Yo‘q |- | [http://testmw.fandom.com/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span class="mw-translate-fuzzy">Admin asboblari Wikia versiyasi sahifasi</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | Cheklangan | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy Ha] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | Ha |} <span id="Notes"></span> <div class="mw-translate-fuzzy"> == Eslatmalar == </div> <references /> lbnewwvmblxo6k0lzxfguokspkdvj9s Wikipedia:Requests/Tools/da 4 146648 665205 663082 2025-07-03T03:41:30Z FuzzyBot 18251 Updating to match new version of source page 665205 wikitext text/x-wiki <languages/> {{requests}} <span lang="en" dir="ltr" class="mw-content-ltr">This page lists sites for users to test administrative tools and the [[mw:|MediaWiki]] software in general. However, each site will have its own rules for testing admin-ship.</span> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !Navn !<span lang="en" dir="ltr" class="mw-content-ltr">MediaWiki version</span> !<span class="mw-translate-fuzzy">IRC kanal(er)</span> !<span lang="en" dir="ltr" class="mw-content-ltr">CheckUser</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Privacy policy</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Bug Tracker/Requests site</span> !<span lang="en" dir="ltr" class="mw-content-ltr">VisualEditor</span> |- | [https://publictestwiki.com/ <span lang="en" dir="ltr" class="mw-content-ltr">'''Public Test Wiki''' (Miraheze)</span>] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Public Test Wiki's version page</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] på Libera | bgcolor="yellow" | <span lang="en" dir="ltr" class="mw-content-ltr">Restricted</span> | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy Ja] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | Ja |- | [https://testwiki.wiki/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki</span>'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki's version page</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span class="mw-translate-fuzzy">på freenode</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy Ja] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | Ja |- | [https://www.thetestwiki.org/ '''<span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki (currently broken)</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span class="mw-translate-fuzzy">på freenode</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes, for non-vandals</span>] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:User talk:Skizzerz|'''Skizzerz’s talk page'''<br>(MediaWiki)]]</span> | bgcolor="red" | Nej |- | [http://testmw.fandom.com/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | <span lang="en" dir="ltr" class="mw-content-ltr">Restricted</span> | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy Ja] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | Ja |} <div lang="en" dir="ltr" class="mw-content-ltr"> ==Notes== </div> <references /> ptd4mkamd28ips3ov8p3yvh2d44re31 Wikipedia:Requests/Tools/nl 4 146649 665212 663089 2025-07-03T03:41:35Z FuzzyBot 18251 Updating to match new version of source page 665212 wikitext text/x-wiki <languages/> {{requests}} <span class="mw-translate-fuzzy">Op deze pagina staan sites waar gebruikers administratieve hulpmiddelen kunnen en [[mw:|MediaWiki]] in het algemeen kunnen testen.</span> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !Naam !MediaWiki-versie !<span lang="en" dir="ltr" class="mw-content-ltr">IRC channel/Discord server</span> !<span lang="en" dir="ltr" class="mw-content-ltr">CheckUser</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Privacy policy</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Bug Tracker/Requests site</span> !<span lang="en" dir="ltr" class="mw-content-ltr">VisualEditor</span> |- | [https://publictestwiki.com/ <span lang="en" dir="ltr" class="mw-content-ltr">'''Public Test Wiki''' (Miraheze)</span>] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Public Test Wiki's version page</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on Libera</span> | bgcolor="yellow" | <span lang="en" dir="ltr" class="mw-content-ltr">Restricted</span> | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span>] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span> |- | [https://testwiki.wiki/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki</span>'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki's version page</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on Libera<br>[https://discord.gg/yBUvasVmt4 Test Wiki] on Discord</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span>] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span> |- | [https://www.thetestwiki.org/ '''<span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki (currently broken)</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on freenode</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes, for non-vandals</span>] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:User talk:Skizzerz|'''Skizzerz’s talk page'''<br>(MediaWiki)]]</span> | bgcolor="red" | <span lang="en" dir="ltr" class="mw-content-ltr">No</span> |- | [http://testmw.fandom.com/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | <span lang="en" dir="ltr" class="mw-content-ltr">Restricted</span> | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span>] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span> |} <div lang="en" dir="ltr" class="mw-content-ltr"> ==Notes== </div> <references /> 1dylmc4vis1kyl72txpownhsdy16lq0 Wikipedia:Requests/Tools/ru 4 146650 665214 663091 2025-07-03T03:41:36Z FuzzyBot 18251 Updating to match new version of source page 665214 wikitext text/x-wiki <languages/> {{requests}} <span class="mw-translate-fuzzy">На этой странице перечислены сайты, на которых пользователи могут тестировать административные инструменты и программное обеспечение [[mw:|MediaWiki]] в целом.</span> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !Имя !Версия MediaWiki !<span class="mw-translate-fuzzy">Канал(ы) IRC</span> !Проверяющий участников !Политика конфиденциальности !<span lang="en" dir="ltr" class="mw-content-ltr">Bug Tracker/Requests site</span> !<span lang="en" dir="ltr" class="mw-content-ltr">VisualEditor</span> |- | [https://publictestwiki.com/ <span lang="en" dir="ltr" class="mw-content-ltr">'''Public Test Wiki''' (Miraheze)</span>] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Public Test Wiki's version page</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on Libera</span> | bgcolor="yellow" | <span lang="en" dir="ltr" class="mw-content-ltr">Restricted</span> | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span>] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span> |- | [https://testwiki.wiki/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki</span>'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki's version page</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on Libera<br>[https://discord.gg/yBUvasVmt4 Test Wiki] on Discord</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span>] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span> |- | [https://www.thetestwiki.org/ '''<span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki (currently broken)</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on freenode</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes, for non-vandals</span>] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:User talk:Skizzerz|'''Skizzerz’s talk page'''<br>(MediaWiki)]]</span> | bgcolor="red" | <span lang="en" dir="ltr" class="mw-content-ltr">No</span> |- | [http://testmw.fandom.com/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | <span lang="en" dir="ltr" class="mw-content-ltr">Restricted</span> | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span>] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span> |} <div lang="en" dir="ltr" class="mw-content-ltr"> ==Notes== </div> <references /> 0z6lnlq2tbgthgppud0p4r87nvnv21h Wikipedia:Requests/Tools/pl 4 146651 665213 663090 2025-07-03T03:41:35Z FuzzyBot 18251 Updating to match new version of source page 665213 wikitext text/x-wiki <languages/> {{requests}} Ta strona zawiera listę stron, na których użytkownicy mogą testować narzędzia administracyjne i ogólnie oprogramowanie [[mw:|MediaWiki]]. Jednak każda witryna będzie miała własne zasady testowania statusu administratora. <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !<span lang="en" dir="ltr" class="mw-content-ltr">Name</span> !Wersja MediaWiki !<span class="mw-translate-fuzzy">Kanał IRC</span> !<span lang="en" dir="ltr" class="mw-content-ltr">CheckUser</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Privacy policy</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Bug Tracker/Requests site</span> !<span lang="en" dir="ltr" class="mw-content-ltr">VisualEditor</span> |- | [https://publictestwiki.com/ <span lang="en" dir="ltr" class="mw-content-ltr">'''Public Test Wiki''' (Miraheze)</span>] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Public Test Wiki's version page</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] na Libera | bgcolor="yellow" | <span lang="en" dir="ltr" class="mw-content-ltr">Restricted</span> | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy Tak] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | Tak |- | [https://testwiki.wiki/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki</span>'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki's version page</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on Libera<br>[https://discord.gg/yBUvasVmt4 Test Wiki] on Discord</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy Tak] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | Tak |- | [https://www.thetestwiki.org/ '''<span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki (currently broken)</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on freenode</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes, for non-vandals</span>] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:User talk:Skizzerz|'''Skizzerz’s talk page'''<br>(MediaWiki)]]</span> | bgcolor="red" | Nie |- | [http://testmw.fandom.com/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | <span lang="en" dir="ltr" class="mw-content-ltr">Restricted</span> | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy Tak] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | Tak |} <span id="Notes"></span> ==Uwagi== <references /> mcjb5fd3c44jx9nnfyudpj9sxrc5s6y Wikipedia:Requests/Tools/anp 4 150574 665202 663081 2025-07-03T03:41:26Z FuzzyBot 18251 Updating to match new version of source page 665202 wikitext text/x-wiki <languages/> {{requests}} <span lang="en" dir="ltr" class="mw-content-ltr">This page lists sites for users to test administrative tools and the [[mw:|MediaWiki]] software in general. However, each site will have its own rules for testing admin-ship.</span> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !नाँव !मीडियाविकि संस्करण !<span class="mw-translate-fuzzy">आईआरसी चैनल (सब)</span> !यूजरजाँच !गोपनीयता नीति !बग ट्रैकर / अनुरोध साइट !विज़ुअल एडिटर |- | [https://publictestwiki.com/ '''पब्लिक टेस्ट विकी''' (मिराहेज़)] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span class="mw-translate-fuzzy">सार्वजनिक परीक्षण विकी संस्करण पृष्ठ</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] <span class="mw-translate-fuzzy">लिबरा पर</span> | bgcolor="yellow" | वर्जित | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy हाँ] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | हाँ |- | [https://testwiki.wiki/ '''टेस्ट विकि'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span class="mw-translate-fuzzy">टेस्ट विकी स्पेशल: संस्करण</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span class="mw-translate-fuzzy">लिबरा पर</span> | bgcolor="#3E7" | हाँ (खाली अपना लेली) | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy हाँ] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | हाँ |- | [https://www.thetestwiki.org/ '''<span class="mw-translate-fuzzy">टेस्ट विकी</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span class="mw-translate-fuzzy">टेस्ट विकी स्पेशल: संस्करण</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span class="mw-translate-fuzzy">फ्रीनोड पर</span> | bgcolor="#3E7" | हाँ (खाली अपना लेली) | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes, for non-vandals</span>] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:User talk:Skizzerz|'''Skizzerz’s talk page'''<br>(MediaWiki)]]</span> | bgcolor="red" | <span lang="en" dir="ltr" class="mw-content-ltr">No</span> |- | [http://testmw.fandom.com/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | <span lang="en" dir="ltr" class="mw-content-ltr">Restricted</span> | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span>] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span> |} <div lang="en" dir="ltr" class="mw-content-ltr"> ==Notes== </div> <references /> smbtph008uzyjlqev0ns53cxqm4vug7 Wikipedia:Requests/Tools/de 4 152294 665206 663083 2025-07-03T03:41:30Z FuzzyBot 18251 Updating to match new version of source page 665206 wikitext text/x-wiki <languages/> {{requests}} <span lang="en" dir="ltr" class="mw-content-ltr">This page lists sites for users to test administrative tools and the [[mw:|MediaWiki]] software in general. However, each site will have its own rules for testing admin-ship.</span> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !Name !MediaWiki-Version !<span class="mw-translate-fuzzy">IRC-Kanal</span> !CheckUser !Datenschutzerklärung !<span lang="en" dir="ltr" class="mw-content-ltr">Bug Tracker/Requests site</span> !VisualEditor |- | [https://publictestwiki.com/ <span lang="en" dir="ltr" class="mw-content-ltr">'''Public Test Wiki''' (Miraheze)</span>] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Public Test Wiki's version page</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on Libera</span> | bgcolor="yellow" | Eingeschränkt | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy Ja] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | Ja |- | [https://testwiki.wiki/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki</span>'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki's version page</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on Libera<br>[https://discord.gg/yBUvasVmt4 Test Wiki] on Discord</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy Ja] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | Ja |- | [https://www.thetestwiki.org/ '''<span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki (currently broken)</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on freenode</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy Ja, für Nicht-Vandalen] | bgcolor="#3E7" | <span class="mw-translate-fuzzy">[[mw:User talk:Skizzerz|Skizzerz’s Diskussionsseite]]</span> | bgcolor="red" | Nein |- | [http://testmw.fandom.com/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | Eingeschränkt | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy Ja] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | Ja |} <div lang="en" dir="ltr" class="mw-content-ltr"> ==Notes== </div> <references /> 6ee78aoibi662mge0x2ju7ngfsp9vp1 User:Như Gây Mê/sandbox 2 154117 665220 664213 2025-07-03T05:13:54Z Như Gây Mê 60101 Blanked the page 665220 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 Test 0 155073 665183 664265 2025-07-02T15:15:40Z ~2025-117661 69378 test 665183 wikitext text/x-wiki The abuse filter will warn about this. Tesst == Testing == cross-origin edit logydr10xp7ftlhpjcr71m132o1eoxq User:GMikesell-WMF/sandbox 2 156636 665189 664915 2025-07-02T17:31:52Z GMikesell-WMF 55540 Created by translating the section "Ingredients" from the page "[[:en:Special:Redirect/revision/1297838186|Cooking]]" 665189 wikitext text/x-wiki {{User sandbox}} <!-- EDIT BELOW THIS LINE --> <phonos file="foo|bar" /> TEST == __LEAD_SECTION__ == Founder of a civil association devoted to the rescue of the islands of average jungle of the Huasteca Norveracruzana. TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST == Cause == zxdzzcf awdasd awd zwsdfdsza zsdfzswfzwf sefzwasfrw test test test test test teste teset s srretse stetsetset == Nutrition == test test test test test test Το Tahini είναι 53% λιπαρά, 22% [[υδατάνθρακες]], 17% [[Πρωτεΐνη|πρωτεΐνες]] και 3% νερό (τραπέζι). Σε ποσότητα αναφοράς {{Cvt|100|g}} oz), παρέχει 592 [[Θερμίδα|θερμίδες]] και είναι μια πλούσια πηγή [[θειαμίνη]] (133% της Ημερήσια αξία, DV), διάφορων διατροφικών μεταλλικών (25-33% DV), Νιακίνη και [[Φυλλικό οξύ|Φωλικό οξύ]] (25-35% DV, πίνακας). Το Tahini είναι μια μέτρια πηγή (10-19% DV) ασβεστίου και καλίου (πίνακας). Το Tahini είναι 53% λιπαρά, 22% [[υδατάνθρακες]], 17% [[Πρωτεΐνη|πρωτεΐνες]] και 3% νερό (τραπέζι). Σε ποσότητα αναφοράς {{Cvt|100|g}} oz), παρέχει 592 [[Θερμίδα|θερμίδες]] και είναι μια πλούσια πηγή [[θειαμίνη]] (133% της Ημερήσια αξία, DV), διάφορων διατροφικών μεταλλικών (25-33% DV), Νιακίνη και [[Φυλλικό οξύ|Φωλικό οξύ]] (25-35% DV, πίνακας). Το Tahini είναι μια μέτρια πηγή (10-19% DV) ασβεστίου και καλίου (πίνακας). Το Tahini είναι 53% λιπαρά, 22% [[υδατάνθρακες]], 17% [[Πρωτεΐνη|πρωτεΐνες]] και 3% νερό (τραπέζι). Σε ποσότητα αναφοράς {{Cvt|100|g}} oz), παρέχει 592 [[Θερμίδα|θερμίδες]] και είναι μια πλούσια πηγή [[θειαμίνη]] (133% της Ημερήσια αξία, DV), διάφορων διατροφικών μεταλλικών (25-33% DV), Νιακίνη και [[Φυλλικό οξύ|Φωλικό οξύ]] (25-35% DV, πίνακας). Το Tahini είναι μια μέτρια πηγή (10-19% DV) ασβεστίου και καλίου (πίνακας). Το Tahini είναι 53% λιπαρά, 22% [[υδατάνθρακες]], 17% [[Πρωτεΐνη|πρωτεΐνες]] και 3% νερό (τραπέζι). Σε ποσότητα αναφοράς {{Cvt|100|g}} oz), παρέχει 592 [[Θερμίδα|θερμίδες]] και είναι μια πλούσια πηγή [[θειαμίνη]] (133% της Ημερήσια αξία, DV), διάφορων διατροφικών μεταλλικών (25-33% DV), Νιακίνη και [[Φυλλικό οξύ|Φωλικό οξύ]] (25-35% DV, πίνακας). Το Tahini είναι μια μέτρια πηγή (10-19% DV) ασβεστίου και καλίου (πίνακας). == Miso paste == test test test test test test test test fermentación de soja con sal y el hongo ''[[Aspergillus oryzae]]'', conocido en japonés como ''[[:ja:麹|kōjikin]]'' (麹菌), y a veces arroz, cebada u otros ingredientes) se pueden clasificar en rojas ( ''akamiso'' ), blancas ( ''shiromiso'' ) o mixtas ( ''awase'' ). <ref>{{Cita web|url=https://www.huffpost.com/entry/miso-paste_n_571e54ede4b0d0042da9e115|título=What Is Miso Paste, Anyway, And How Do I Use It? Help!|fecha=2016-04-26|sitioweb=HuffPost|idioma=en|fechaacceso=2018-12-14|fechaarchivo=2018-12-14|urlarchivo=https://web.archive.org/web/20181214164406/https://www.huffpost.com/entry/miso-paste_n_571e54ede4b0d0042da9e115|urlmuerta=live}}</ref> Hay muchas variaciones dentro de estos temas, incluidas variaciones regionales, como [[Provincia de Shinano|el Shinshū]] miso o [[:ja:仙台味噌|el Sendai miso]] . == Ingredients == test test test test == Ingredients == fgdfg dgdfg test test test test test 3iu3sfv1yu340rmotrmf2wx5y1wvbxd User:TenWhile6/AHtest.js 2 157427 665224 664862 2025-07-03T07:14:43Z TenWhile6 51225 665224 javascript text/javascript //<nowiki> Av = 'v1.1'; An = 'AdminHelper'; AdminHelper = `${An} ${Av}`; var api = new mw.Api(); const DBname = mw.config.get('wgDBname'); const thisPage = mw.config.get('wgPageName'); const relevantPage = mw.config.get('wgRelevantPageName'); const userName = mw.config.get('wgUserName'); const nameSpace = mw.config.get('wgNamespaceNumber'); const pageProtection = mw.config.get('wgRestrictionEdit'); const userGroups = mw.config.get('wgUserGroups'); const globalSysops = [ "A09", "Ameisenigel", "Amire80", "Biplab Anand", "BRPever", "CptViraj", "DARIO SEVERI", "Fehufanga", "Baskerville", "Iluvatar_", "Infinite0694", "LR0725", "M7", "MF-W", "Minorax", "Mtarch11", "Praxidicae", "Renvoy", "SHB2000", "Superpes", "Svartava", "SyunSyunMinMin", "Tanbiruzzaman", "Teles", "TenWhile6", "Ternera", "TheresNoTime", "Turkmen", "WhitePhosphorus", "WikiBayer" ]; const optedOutFromGlobalSysops = [ "anwiki", "arwiki", "bgwiki", "bnwiki", "cawiki", "commonswiki", "cswiki", "cswikisource", "cswiktionary", "cywiki", "dawiki", "dewiki", "dewikibooks", "dewikisource", "dewikivoyage", "dewiktionary", "elwiki", "enwiki", "enwikiquote", "enwikisource", "enwiktionary", "eowiki", "eswiki", "etwiki", "euwiki", "fawiki", "fiwiki", "frwiki", "frwikisource", "frwiktionary", "hewiki", "hewikisource", "hrwiki", "huwiki", "idwiki", "iswiki", "itwiki", "jawiki", "kawiki", "kowiki", "loginwiki", "lvwiki", "metawiki", "mkwiki", "mlwiki", "mrwiki", "mswiki", "nlwiki", "nlwiktionary", "nnwiki", "nowiki", "plwiki", "plwikimedia", "plwikisource", "plwiktionary", "ptwiki", "rowiki", "ruwiki", "sewikimedia", "simplewiki", "skwiki", "slwiki", "sourceswiki", "specieswiki", "svwiki", "svwiktionary", "tawiki", "testwiki", "tewiki", "thwiki", "trwiki", "urwiki", "viwiki", "wikidatawiki", "zh_yuewiki", "zhwiki" ]; AHconfig = { 'dewiki': { 'buttonA': 'Vandale [6h]', 'buttonB': 'kWzeM', 'buttonC': 'Vandale [1w]', 'IPb-duration': '6 hours', 'IPb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Tempb-duration': '1 week', 'Tempb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Userb-duration': 'never', 'Userb-reason': 'Kein Wille zur enzyklopädischen Mitarbeit erkennbar', }, 'wikidatawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '3 days', 'IPb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '1 week', 'Tempb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]]-only account [AdminHelper]', }, 'metawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '31 hours', 'IPb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '1 week', 'Tempb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism-only]] account [AdminHelper]', }, 'GSwikis': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '24 hours', 'IPb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Tempb-duration': '1 week', 'Tempb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Userb-duration': 'never', 'Userb-reason': 'Vandalism-only account ([[m:GS|global sysop]] action – via AdminHelper)', } }; function configData(varname) { if (DBname in AHconfig) { if (varname in AHconfig[DBname]) { return AHconfig[DBname][varname]; } } else { return AHconfig.GSwikis.varname; } } // mw.notify configs function sendError(script, message) { mw.notify('Fehler in '+script+':\n\n'+message,{'type':'error','title':AdminHelper}); } function sendDone(message) { mw.notify(message,{'type':'success','title':AdminHelper}); } function sendInfo(message) { mw.notify(message,{'title':AdminHelper}); } // isPageInCategory() => Category checker function isPageInCategory(pageName, categoryName) { var isInCategory = false; return api.get({ action: 'query', prop: 'categories', titles: pageName, clcategories: categoryName, cllimit: 'max' }).then(function(data) { var pages = data.query.pages; for (var pageId in pages) { if (pages.hasOwnProperty(pageId)) { if (pages[pageId].categories && pages[pageId].categories.length > 0) { isInCategory = true; break; } } } return isInCategory; }).catch(function(error) { //sendError('isPageInCategory()', error); return false; }); } // deletePage() => delete function deletePage(pageName, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'delete', title: pageName, reason: reason, format: 'json' } ) .done(function (data) { location.reload(); } ); } else { sendError('deletePage()', 'Keine Berechtigung!'); } } // protectPage() => protect function protectPage(pageName, conf, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'protect', title: pageName, protections: conf, expiry: 'infinite', reason: reason, format: 'json' } ) .done(function (data) { if (userName == 'TenWhile6') { window.close(); } else { sendDone('Seite erfolgreich geschützt.'); } } ); } else { sendError('protectPage()', 'Keine Berechtigung!'); } } // isBlocked() => check block status function isBlocked(user) { var api = new mw.Api(); return api.get({ action: 'query', list: 'blocks', bkusers: user }).then(function(data) { if (data.query.blocks && data.query.blocks.length > 0) { var block = data.query.blocks[0]; if (block.expiry == 'infinity' && block.reason != 'Fehlende [[WP:Bezahltes Schreiben|Offenlegung bezahlter Bearbeitungen]] gemäß Ziffer 4 der [[:wmf:Terms of Use/de#4. Unterlassen bestimmter Handlungen|Nutzungsbedingungen]]') { return true; } else { return false; } } else { return false; } }).catch(function(error) { return false; }); } // fastblock => IPs and users function fbr(username, isAnon, isTemp) { api.get({ action: 'query', list: 'users', ususers: username, usprop: 'editcount', format: 'json' }).done(function(data) { if (isAnon) { username = mw.util.isIPv6Address(username) ? username + '/64' : username; } else { var ecount = data.query.users[0].editcount; if (ecount == undefined) { sendError('fastblock()','Name mit Klammerzusatz oder Skriptfehler.'); return; } else if (ecount > 50) { alert('Aus Sicherheitsgründen ist das Sperren von Benutzern mit über 50 Bearbeitungen nicht möglich.'); return; } } api.get({ action: 'query', format: 'json', list: 'logevents', letype: 'block', letitle: `User:${username}`, formatversion: 2 }).then(function(data) { len = data.query.logevents.length; var exp = isAnon ? configData('IPb-duration') : (isTemp ? configData('Tempb-duration') : configData('Userb-duration')); var reas = isAnon ? configData('IPb-reason') : (isTemp ? configData('Tempb-reason') : configData('Userb-reason')); if (len > 0) { alert(`${isAnon ? 'IP-Adresse' : (isTemp ? 'Tempkonto' : 'Benutzer')} hat ${len == 1 ? 'einen Sperrlogeintrag' : len+' Sperrlogeinträge'}.\nLeite daher zu manuellem Sperrdialog weiter (bitte OK klicken).`); window.location.href = `https://de.wikipedia.org/wiki/Spezial:Sperren/${username}`; } else { var confirmed = confirm(`--- SPERRE BESTÄTIGEN ---\nDauer: ${exp}\nbetrifft: ${username}\n${typeof ecount !== undefined ? `Editcount: ${ecount}\n`:''}Sperrlogeinträge: ${len}`); if (confirmed) { api.postWithToken('csrf', { action: 'block', user: username, expiry: exp, reason: reas, nocreate: 'true', autoblock: 'true', anononly: 'true', allowusertalk: 'false' }).then( function () { sendDone(username + ' gesperrt'); }).catch(function(error) { sendError('fastblock()', (error == 'permissiondenied' ? 'Keine Berechtigung!' : (error == 'baduser' ? 'Benutzer existiert nicht' : error))); }); }} }); }); } function fastblock(obj) { if( mw.config.get('wgCanonicalSpecialPageName') == 'Contributions' || mw.config.get('wgCanonicalSpecialPageName') == 'IPContributions' || mw.config.get('wgCanonicalSpecialPageName') == 'DeletedContributions' ) { $(document).ready(function ca_gbLinkContribs() { var show = document.getElementById('contentSub'); if(show) { var target = mw.config.get('wgRelevantUserName'); mw.notify(target); if (target !== null) { var elemfb = document.createElement('span'); var fb = document.createElement('a'); var isAnon = mw.util.isIPAddress(target); var isTemp = mw.util.isTemporaryUser(target); fb.href = '#block'; fb.innerHTML = isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB')); fb.title = 'Sperre per fastblock()'; fb.addEventListener('click', function() { fbr(target, isAnon, isTemp); }); elemfb.appendChild(fb); document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemfb); } } }); } else { obj.find('span.mw-usertoollinks').each( function( idx, element ) { var isAnon = this.previousElementSibling.className.indexOf( 'mw-anonuserlink' ) >= 0; $( element ).contents().last().before((' | '), $('<a>').attr('href', '#block') .text(isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB'))) .click(function() { var username = $(this).parent().get( 0 ).previousElementSibling.textContent; fbr(username, isAnon); })); } ); } } // statIP => Statische IPs function statIP() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Benutzer:Statische IP (ungeschützt)').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Stat-IP-Schutz', 'ca-statprotect', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect' ); $(portletLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); var portletLink2 = mw.util.addPortletLink( 'p-search', '#', 'Stat-IP-Schutz', 'ca-statprotect2', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect2' ); $(portletLink2).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); } }); } } // LKerl => Löschkandidatenseite eines Tages als erl. markieren function LKerl() { if (thisPage.includes('Wikipedia:Löschkandidaten/')) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; if (pageData.includes('{{Löschkandidatenseite|erl=}}')) { if ((pageData.includes(']==') || pageData.includes('] ==') || pageData.includes('] ==')) == false) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LK erledigt', 'ca-LKerl', 'Seite als erledigt markieren', null, '#ca-LKerl' ); $(portletLink).click(function(e) { e.preventDefault(); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace('{{Löschkandidatenseite|erl=}}', '{{Löschkandidatenseite|erl=--~~~~}}'), summary: 'Löschkandidatenseite als erledigt markiert [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )} } }); } } // LAweg => Entferne LA im ANR function LAweg() { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Löschkandidat').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LA nach Behaltensentscheidung entfernen', 'ca-LAweg', 'Seite als erledigt markieren', null, '#ca-LAweg' ); $(portletLink).click(function(e) { e.preventDefault(); api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace(/<noinclude>.*?<\/noinclude>/gs, '').replace(/^\s*\n/, ''), summary: 'Löschantrag nach Behaltensentscheidung entfernt [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )}); } }); } // ImportartikelimBNR => füge {importartikel} hinzu, blende Kats function ImportartikelImBNR() { if (nameSpace == 2 && ['TenWhile6', 'Ameisenigel'].includes(userName) && thisPage.includes('/') && !(thisPage.includes('Benutzer:Versionen')) && !(thisPage.includes('Benutzer:CountCountBot')) && !(thisPage.includes(userName.replace(/ /g, '_')))) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|summary', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; console.log(data.query.pages[0].revisions[0].user); if (data.query.pages[0].revisions[0].user == userName && !(pageData.includes('{Importartikel}'))) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Importartikel', 'ca-IMP', 'Setze Vorlage und blende Kategorien aus', null, '#ca-IMP' ); $(portletLink).click(function(e) { e.preventDefault(); pageData = '{{Importartikel}}\n'+pageData; pageData = pageData+'-->'; pageData = pageData.replace('\n[[Ca', '\n<!--[[Ca'); pageData = pageData.replace('\n[[Kat', '\n<!--[[Kat'); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData, summary: 'Importartikel [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); }); } } )} } // Vdel => 'Verschieberest'-Löschungen function Vdel() { if ([0, 1, 2, 3, 4].includes(nameSpace)) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '2', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const revs = pageData.length; if (revs == 1) { const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; //const twoHoursInMilliseconds = 7 * 60 * 60 * 1000; var content = pageData[0].slots.main.content; if (!([2,3].includes(nameSpace)) || ([2,3].includes(nameSpace) && thisPage.includes("/"))) { if (content.match(new RegExp('#WEITERLEITUNG','g')) !== null) { content = content.replace('#WEITERLEITUNG [[', ''); content = content.replace(']]', ''); if ([1, 2].includes(nameSpace) | (nameSpace == 0 & content.match(new RegExp('Benutzer(|in):','g')) !== null)) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Verschieberest`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Verschieberest: [[${content}]]`); }); } } } } }); } } // BNR-SLA => Schnelllöschungen 'Wunsch des Benutzers' function BNRSLA() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; const twoHoursInMilliseconds = 2 * 60 * 60 * 1000; if (timeDifference < twoHoursInMilliseconds) { XrelevantPage = relevantPage.replace(/_/g, ' '); if (XrelevantPage.includes(pageData[0].user)) { if (pageData[0].slots.main.content.match(new RegExp('{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]b|Diese Vorlage wurde zum','g')) !== null) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`); }); } } } }); } }); } } // SpamWD => Schnelllöschungen 'Spam' function SpamdelWD() { if ([1,2,3].includes(nameSpace)) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Spam / advertising', 'ca-spamdelete', `delete the page using the reason Spam / advertising`, null, '#ca-spamdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Spam / advertising'); }); } } // erlBotmeldungen => erledigte Botmarkierungen function botDone() { if (nameSpace == 1) { isPageInCategory(thisPage, 'Category:Wikipedia:Defekte Weblinks/Bot/Keine auffindbaren URL').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pages = data.query.pages[0].revisions[0].slots.main.content; var lines = pages.split('\n'); var okay = true; for (var i = 0; i < lines.length; i++) { if (lines[i] == '') {} else if (lines[i].includes('Defekter Weblink') || lines[i].includes('Defekte Weblinks')) { break; } else { okay = false; } } for (var q = lines.length-1; q >= 0; q--) { //console.log(`lines[${q}] == ${lines[q]}`); if (lines[q] == '') {} else if (['GiftBot', 'MerlLinkBot', 'Zwobot', 'SpBot', 'Luke081515Bot'].includes(lines[q])) { break; } else { okay = false; } } for (var u = 0; u < lines.length; u++) { var line = lines[u]; var count = line.split('==').length - 1; if (count > 1) { if (!(line.includes('Defekter Weblink') || line.includes('Defekte Weblinks'))) { okay = false; } } } if (okay == true) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } }); } else { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '5', rvprop: 'content|user', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; var revC = pageData.length-1; var currentContent = pageData[0].slots.main.content; if ((currentContent == '' | isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen')) && revC < 5 && userName == 'TenWhile6') { if (!window.location.href.includes('index.php') && !window.location.href.includes('Spezial')) { const ptt = thisPage.replace(/ /g, '_'); window.location.href = `https://de.wikipedia.org/w/index.php?title=${ptt}&action=history`; } else { for (var ya = revC; ya >= 1; ya--) { if (!(['GiftBot', 'Luke081515Bot'].includes(pageData[ya].user))) { if (pageData[ya].slots.main.content != pageData[ya+1].slots.main.content) { return; } } } var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } } }); } }); } } // Gesperrt -> GB + protect function GB() { if (nameSpace == 3) { var userName = mw.config.get('wgTitle').split('/')[0]; isBlocked(userName).then(function(result) { if (result) { if (pageProtection.indexOf('sysop') == -1) { sendInfo('Infinit gesperrt - Disk aber ungeschützt!\nBitte Button anklicken!'); var GBportLink = mw.util.addPortletLink( 'p-cactions', '#', 'GB + Schutz', 'ca-gb', 'Schütze Disk und setze {{GB}} - Benutzer ist infinit gesperrt.', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=sysop|move=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); api.postWithEditToken({ action: 'edit', title: thisPage, text: '{{GB}}', summary: 'Gesperrter Benutzer' }).then(function(data) { if (data && data.edit && data.edit.result == 'Success') { sendDone('GB erfolgreich'); } else { sendError('GB()', 'erneut versuchen'); } }).catch(function(error) { sendError('GB()', 'erneut versuchen'); }); } ); } } }); } } // Gesperrt -> GB + protect function GBX() { if (nameSpace == 3 & userName == 'TenWhile6') { var userNameX = mw.config.get('wgTitle').split('/')[0]; isBlocked(userNameX).then(function(result) { if (result) { var GBportLink = mw.util.addPortletLink( 'p-search', '#', 'sysop-schutz', 'ca-gb', 'tw6only', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'create=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); } ); } }); } } function filterstuff() { if (nameSpace == -1) { if (window.location.href.includes('/examine/log/')) { var DAportLink = mw.util.addPortletLink( 'p-search', '#', 'Diff ansehen', 'ca-da', 'Versionsunterschied aufrufen', null, '#ca-da' ); $(DAportLink).click(function(e) { e.preventDefault(); hrefX = window.location.href.split('examine/log/'); window.location.href = mw.config.get('wgServer')+'/wiki/Special:AbuseLog/'+hrefX[1]; }); } } } if (DBname == 'dewiki') { GB(); GBX(); botDone(); BNRSLA(); Vdel(); statIP(); LKerl(); LAweg(); ImportartikelImBNR(); } else if (DBname == 'wikidatawiki') { SpamdelWD(); } if (['dewiki', 'wikidatawiki', 'metawiki'].includes(DBname) || (globalSysops.includes(userName) && !(optedOutFromGlobalSysops.includes(DBname)))) { mw.hook('wikipage.content').add(function(obj) { fastblock(obj); }); } filterstuff(); //</nowiki> s6gr0128e3pia3a7b71utlcuty32y8h 665225 665224 2025-07-03T07:15:38Z TenWhile6 51225 665225 javascript text/javascript //<nowiki> Av = 'v1.1'; An = 'AdminHelper'; AdminHelper = `${An} ${Av}`; var api = new mw.Api(); const DBname = mw.config.get('wgDBname'); const thisPage = mw.config.get('wgPageName'); const relevantPage = mw.config.get('wgRelevantPageName'); const userName = mw.config.get('wgUserName'); const nameSpace = mw.config.get('wgNamespaceNumber'); const pageProtection = mw.config.get('wgRestrictionEdit'); const userGroups = mw.config.get('wgUserGroups'); const globalSysops = [ "A09", "Ameisenigel", "Amire80", "Biplab Anand", "BRPever", "CptViraj", "DARIO SEVERI", "Fehufanga", "Baskerville", "Iluvatar_", "Infinite0694", "LR0725", "M7", "MF-W", "Minorax", "Mtarch11", "Praxidicae", "Renvoy", "SHB2000", "Superpes", "Svartava", "SyunSyunMinMin", "Tanbiruzzaman", "Teles", "TenWhile6", "Ternera", "TheresNoTime", "Turkmen", "WhitePhosphorus", "WikiBayer" ]; const optedOutFromGlobalSysops = [ "anwiki", "arwiki", "bgwiki", "bnwiki", "cawiki", "commonswiki", "cswiki", "cswikisource", "cswiktionary", "cywiki", "dawiki", "dewiki", "dewikibooks", "dewikisource", "dewikivoyage", "dewiktionary", "elwiki", "enwiki", "enwikiquote", "enwikisource", "enwiktionary", "eowiki", "eswiki", "etwiki", "euwiki", "fawiki", "fiwiki", "frwiki", "frwikisource", "frwiktionary", "hewiki", "hewikisource", "hrwiki", "huwiki", "idwiki", "iswiki", "itwiki", "jawiki", "kawiki", "kowiki", "loginwiki", "lvwiki", "metawiki", "mkwiki", "mlwiki", "mrwiki", "mswiki", "nlwiki", "nlwiktionary", "nnwiki", "nowiki", "plwiki", "plwikimedia", "plwikisource", "plwiktionary", "ptwiki", "rowiki", "ruwiki", "sewikimedia", "simplewiki", "skwiki", "slwiki", "sourceswiki", "specieswiki", "svwiki", "svwiktionary", "tawiki", "testwiki", "tewiki", "thwiki", "trwiki", "urwiki", "viwiki", "wikidatawiki", "zh_yuewiki", "zhwiki" ]; AHconfig = { 'dewiki': { 'buttonA': 'Vandale [6h]', 'buttonB': 'kWzeM', 'buttonC': 'Vandale [1w]', 'IPb-duration': '6 hours', 'IPb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Tempb-duration': '1 week', 'Tempb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Userb-duration': 'never', 'Userb-reason': 'Kein Wille zur enzyklopädischen Mitarbeit erkennbar', }, 'wikidatawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '3 days', 'IPb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '1 week', 'Tempb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]]-only account [AdminHelper]', }, 'metawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '31 hours', 'IPb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '1 week', 'Tempb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism-only]] account [AdminHelper]', }, 'GSwikis': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '24 hours', 'IPb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Tempb-duration': '1 week', 'Tempb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Userb-duration': 'never', 'Userb-reason': 'Vandalism-only account ([[m:GS|global sysop]] action – via AdminHelper)', } }; function configData(varname) { if (DBname in AHconfig) { if (varname in AHconfig[DBname]) { return AHconfig[DBname][varname]; } } else { return AHconfig.GSwikis.varname; } } // mw.notify configs function sendError(script, message) { mw.notify('Fehler in '+script+':\n\n'+message,{'type':'error','title':AdminHelper}); } function sendDone(message) { mw.notify(message,{'type':'success','title':AdminHelper}); } function sendInfo(message) { mw.notify(message,{'title':AdminHelper}); } // isPageInCategory() => Category checker function isPageInCategory(pageName, categoryName) { var isInCategory = false; return api.get({ action: 'query', prop: 'categories', titles: pageName, clcategories: categoryName, cllimit: 'max' }).then(function(data) { var pages = data.query.pages; for (var pageId in pages) { if (pages.hasOwnProperty(pageId)) { if (pages[pageId].categories && pages[pageId].categories.length > 0) { isInCategory = true; break; } } } return isInCategory; }).catch(function(error) { //sendError('isPageInCategory()', error); return false; }); } // deletePage() => delete function deletePage(pageName, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'delete', title: pageName, reason: reason, format: 'json' } ) .done(function (data) { location.reload(); } ); } else { sendError('deletePage()', 'Keine Berechtigung!'); } } // protectPage() => protect function protectPage(pageName, conf, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'protect', title: pageName, protections: conf, expiry: 'infinite', reason: reason, format: 'json' } ) .done(function (data) { if (userName == 'TenWhile6') { window.close(); } else { sendDone('Seite erfolgreich geschützt.'); } } ); } else { sendError('protectPage()', 'Keine Berechtigung!'); } } // isBlocked() => check block status function isBlocked(user) { var api = new mw.Api(); return api.get({ action: 'query', list: 'blocks', bkusers: user }).then(function(data) { if (data.query.blocks && data.query.blocks.length > 0) { var block = data.query.blocks[0]; if (block.expiry == 'infinity' && block.reason != 'Fehlende [[WP:Bezahltes Schreiben|Offenlegung bezahlter Bearbeitungen]] gemäß Ziffer 4 der [[:wmf:Terms of Use/de#4. Unterlassen bestimmter Handlungen|Nutzungsbedingungen]]') { return true; } else { return false; } } else { return false; } }).catch(function(error) { return false; }); } // fastblock => IPs and users function fbr(username, isAnon, isTemp) { api.get({ action: 'query', list: 'users', ususers: username, usprop: 'editcount', format: 'json' }).done(function(data) { if (isAnon) { username = mw.util.isIPv6Address(username) ? username + '/64' : username; } else { var ecount = data.query.users[0].editcount; if (ecount == undefined) { sendError('fastblock()','Name mit Klammerzusatz oder Skriptfehler.'); return; } else if (ecount > 50) { alert('Aus Sicherheitsgründen ist das Sperren von Benutzern mit über 50 Bearbeitungen nicht möglich.'); return; } } api.get({ action: 'query', format: 'json', list: 'logevents', letype: 'block', letitle: `User:${username}`, formatversion: 2 }).then(function(data) { len = data.query.logevents.length; var exp = isAnon ? configData('IPb-duration') : (isTemp ? configData('Tempb-duration') : configData('Userb-duration')); var reas = isAnon ? configData('IPb-reason') : (isTemp ? configData('Tempb-reason') : configData('Userb-reason')); if (len > 0) { alert(`${isAnon ? 'IP-Adresse' : (isTemp ? 'Tempkonto' : 'Benutzer')} hat ${len == 1 ? 'einen Sperrlogeintrag' : len+' Sperrlogeinträge'}.\nLeite daher zu manuellem Sperrdialog weiter (bitte OK klicken).`); window.location.href = `https://de.wikipedia.org/wiki/Spezial:Sperren/${username}`; } else { var confirmed = confirm(`--- SPERRE BESTÄTIGEN ---\nDauer: ${exp}\nbetrifft: ${username}\n${typeof ecount !== undefined ? `Editcount: ${ecount}\n`:''}Sperrlogeinträge: ${len}`); if (confirmed) { api.postWithToken('csrf', { action: 'block', user: username, expiry: exp, reason: reas, nocreate: 'true', autoblock: 'true', anononly: 'true', allowusertalk: 'false' }).then( function () { sendDone(username + ' gesperrt'); }).catch(function(error) { sendError('fastblock()', (error == 'permissiondenied' ? 'Keine Berechtigung!' : (error == 'baduser' ? 'Benutzer existiert nicht' : error))); }); }} }); }); } function fastblock(obj) { if( mw.config.get('wgCanonicalSpecialPageName') == 'Contributions' || mw.config.get('wgCanonicalSpecialPageName') == 'IPContributions' || mw.config.get('wgCanonicalSpecialPageName') == 'DeletedContributions' ) { $(document).ready(function ca_gbLinkContribs() { var show = document.getElementById('contentSub'); if(show) { var target = mw.config.get('wgRelevantUserName'); mw.notify(target); if (target !== null) { var elemfb = document.createElement('span'); var fb = document.createElement('a'); var isAnon = mw.util.isIPAddress(target); var isTemp = mw.util.isTemporaryUser(target); fb.href = '#block'; mw.notify(configData('buttonA')); mw.notify(configData('buttonB')); mw.notify(configData('buttonC')); fb.innerHTML = isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB')); fb.title = 'Sperre per fastblock()'; fb.addEventListener('click', function() { fbr(target, isAnon, isTemp); }); elemfb.appendChild(fb); document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemfb); } } }); } else { obj.find('span.mw-usertoollinks').each( function( idx, element ) { var isAnon = this.previousElementSibling.className.indexOf( 'mw-anonuserlink' ) >= 0; $( element ).contents().last().before((' | '), $('<a>').attr('href', '#block') .text(isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB'))) .click(function() { var username = $(this).parent().get( 0 ).previousElementSibling.textContent; fbr(username, isAnon); })); } ); } } // statIP => Statische IPs function statIP() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Benutzer:Statische IP (ungeschützt)').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Stat-IP-Schutz', 'ca-statprotect', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect' ); $(portletLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); var portletLink2 = mw.util.addPortletLink( 'p-search', '#', 'Stat-IP-Schutz', 'ca-statprotect2', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect2' ); $(portletLink2).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); } }); } } // LKerl => Löschkandidatenseite eines Tages als erl. markieren function LKerl() { if (thisPage.includes('Wikipedia:Löschkandidaten/')) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; if (pageData.includes('{{Löschkandidatenseite|erl=}}')) { if ((pageData.includes(']==') || pageData.includes('] ==') || pageData.includes('] ==')) == false) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LK erledigt', 'ca-LKerl', 'Seite als erledigt markieren', null, '#ca-LKerl' ); $(portletLink).click(function(e) { e.preventDefault(); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace('{{Löschkandidatenseite|erl=}}', '{{Löschkandidatenseite|erl=--~~~~}}'), summary: 'Löschkandidatenseite als erledigt markiert [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )} } }); } } // LAweg => Entferne LA im ANR function LAweg() { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Löschkandidat').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LA nach Behaltensentscheidung entfernen', 'ca-LAweg', 'Seite als erledigt markieren', null, '#ca-LAweg' ); $(portletLink).click(function(e) { e.preventDefault(); api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace(/<noinclude>.*?<\/noinclude>/gs, '').replace(/^\s*\n/, ''), summary: 'Löschantrag nach Behaltensentscheidung entfernt [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )}); } }); } // ImportartikelimBNR => füge {importartikel} hinzu, blende Kats function ImportartikelImBNR() { if (nameSpace == 2 && ['TenWhile6', 'Ameisenigel'].includes(userName) && thisPage.includes('/') && !(thisPage.includes('Benutzer:Versionen')) && !(thisPage.includes('Benutzer:CountCountBot')) && !(thisPage.includes(userName.replace(/ /g, '_')))) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|summary', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; console.log(data.query.pages[0].revisions[0].user); if (data.query.pages[0].revisions[0].user == userName && !(pageData.includes('{Importartikel}'))) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Importartikel', 'ca-IMP', 'Setze Vorlage und blende Kategorien aus', null, '#ca-IMP' ); $(portletLink).click(function(e) { e.preventDefault(); pageData = '{{Importartikel}}\n'+pageData; pageData = pageData+'-->'; pageData = pageData.replace('\n[[Ca', '\n<!--[[Ca'); pageData = pageData.replace('\n[[Kat', '\n<!--[[Kat'); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData, summary: 'Importartikel [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); }); } } )} } // Vdel => 'Verschieberest'-Löschungen function Vdel() { if ([0, 1, 2, 3, 4].includes(nameSpace)) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '2', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const revs = pageData.length; if (revs == 1) { const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; //const twoHoursInMilliseconds = 7 * 60 * 60 * 1000; var content = pageData[0].slots.main.content; if (!([2,3].includes(nameSpace)) || ([2,3].includes(nameSpace) && thisPage.includes("/"))) { if (content.match(new RegExp('#WEITERLEITUNG','g')) !== null) { content = content.replace('#WEITERLEITUNG [[', ''); content = content.replace(']]', ''); if ([1, 2].includes(nameSpace) | (nameSpace == 0 & content.match(new RegExp('Benutzer(|in):','g')) !== null)) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Verschieberest`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Verschieberest: [[${content}]]`); }); } } } } }); } } // BNR-SLA => Schnelllöschungen 'Wunsch des Benutzers' function BNRSLA() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; const twoHoursInMilliseconds = 2 * 60 * 60 * 1000; if (timeDifference < twoHoursInMilliseconds) { XrelevantPage = relevantPage.replace(/_/g, ' '); if (XrelevantPage.includes(pageData[0].user)) { if (pageData[0].slots.main.content.match(new RegExp('{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]b|Diese Vorlage wurde zum','g')) !== null) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`); }); } } } }); } }); } } // SpamWD => Schnelllöschungen 'Spam' function SpamdelWD() { if ([1,2,3].includes(nameSpace)) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Spam / advertising', 'ca-spamdelete', `delete the page using the reason Spam / advertising`, null, '#ca-spamdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Spam / advertising'); }); } } // erlBotmeldungen => erledigte Botmarkierungen function botDone() { if (nameSpace == 1) { isPageInCategory(thisPage, 'Category:Wikipedia:Defekte Weblinks/Bot/Keine auffindbaren URL').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pages = data.query.pages[0].revisions[0].slots.main.content; var lines = pages.split('\n'); var okay = true; for (var i = 0; i < lines.length; i++) { if (lines[i] == '') {} else if (lines[i].includes('Defekter Weblink') || lines[i].includes('Defekte Weblinks')) { break; } else { okay = false; } } for (var q = lines.length-1; q >= 0; q--) { //console.log(`lines[${q}] == ${lines[q]}`); if (lines[q] == '') {} else if (['GiftBot', 'MerlLinkBot', 'Zwobot', 'SpBot', 'Luke081515Bot'].includes(lines[q])) { break; } else { okay = false; } } for (var u = 0; u < lines.length; u++) { var line = lines[u]; var count = line.split('==').length - 1; if (count > 1) { if (!(line.includes('Defekter Weblink') || line.includes('Defekte Weblinks'))) { okay = false; } } } if (okay == true) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } }); } else { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '5', rvprop: 'content|user', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; var revC = pageData.length-1; var currentContent = pageData[0].slots.main.content; if ((currentContent == '' | isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen')) && revC < 5 && userName == 'TenWhile6') { if (!window.location.href.includes('index.php') && !window.location.href.includes('Spezial')) { const ptt = thisPage.replace(/ /g, '_'); window.location.href = `https://de.wikipedia.org/w/index.php?title=${ptt}&action=history`; } else { for (var ya = revC; ya >= 1; ya--) { if (!(['GiftBot', 'Luke081515Bot'].includes(pageData[ya].user))) { if (pageData[ya].slots.main.content != pageData[ya+1].slots.main.content) { return; } } } var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } } }); } }); } } // Gesperrt -> GB + protect function GB() { if (nameSpace == 3) { var userName = mw.config.get('wgTitle').split('/')[0]; isBlocked(userName).then(function(result) { if (result) { if (pageProtection.indexOf('sysop') == -1) { sendInfo('Infinit gesperrt - Disk aber ungeschützt!\nBitte Button anklicken!'); var GBportLink = mw.util.addPortletLink( 'p-cactions', '#', 'GB + Schutz', 'ca-gb', 'Schütze Disk und setze {{GB}} - Benutzer ist infinit gesperrt.', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=sysop|move=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); api.postWithEditToken({ action: 'edit', title: thisPage, text: '{{GB}}', summary: 'Gesperrter Benutzer' }).then(function(data) { if (data && data.edit && data.edit.result == 'Success') { sendDone('GB erfolgreich'); } else { sendError('GB()', 'erneut versuchen'); } }).catch(function(error) { sendError('GB()', 'erneut versuchen'); }); } ); } } }); } } // Gesperrt -> GB + protect function GBX() { if (nameSpace == 3 & userName == 'TenWhile6') { var userNameX = mw.config.get('wgTitle').split('/')[0]; isBlocked(userNameX).then(function(result) { if (result) { var GBportLink = mw.util.addPortletLink( 'p-search', '#', 'sysop-schutz', 'ca-gb', 'tw6only', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'create=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); } ); } }); } } function filterstuff() { if (nameSpace == -1) { if (window.location.href.includes('/examine/log/')) { var DAportLink = mw.util.addPortletLink( 'p-search', '#', 'Diff ansehen', 'ca-da', 'Versionsunterschied aufrufen', null, '#ca-da' ); $(DAportLink).click(function(e) { e.preventDefault(); hrefX = window.location.href.split('examine/log/'); window.location.href = mw.config.get('wgServer')+'/wiki/Special:AbuseLog/'+hrefX[1]; }); } } } if (DBname == 'dewiki') { GB(); GBX(); botDone(); BNRSLA(); Vdel(); statIP(); LKerl(); LAweg(); ImportartikelImBNR(); } else if (DBname == 'wikidatawiki') { SpamdelWD(); } if (['dewiki', 'wikidatawiki', 'metawiki'].includes(DBname) || (globalSysops.includes(userName) && !(optedOutFromGlobalSysops.includes(DBname)))) { mw.hook('wikipage.content').add(function(obj) { fastblock(obj); }); } filterstuff(); //</nowiki> duba11gpyfxgu679zl2hgclg6hyehcr 665227 665225 2025-07-03T07:18:10Z TenWhile6 51225 665227 javascript text/javascript //<nowiki> Av = 'v1.1'; An = 'AdminHelper'; AdminHelper = `${An} ${Av}`; var api = new mw.Api(); const DBname = mw.config.get('wgDBname'); const thisPage = mw.config.get('wgPageName'); const relevantPage = mw.config.get('wgRelevantPageName'); const userName = mw.config.get('wgUserName'); const nameSpace = mw.config.get('wgNamespaceNumber'); const pageProtection = mw.config.get('wgRestrictionEdit'); const userGroups = mw.config.get('wgUserGroups'); const globalSysops = [ "A09", "Ameisenigel", "Amire80", "Biplab Anand", "BRPever", "CptViraj", "DARIO SEVERI", "Fehufanga", "Baskerville", "Iluvatar_", "Infinite0694", "LR0725", "M7", "MF-W", "Minorax", "Mtarch11", "Praxidicae", "Renvoy", "SHB2000", "Superpes", "Svartava", "SyunSyunMinMin", "Tanbiruzzaman", "Teles", "TenWhile6", "Ternera", "TheresNoTime", "Turkmen", "WhitePhosphorus", "WikiBayer" ]; const optedOutFromGlobalSysops = [ "anwiki", "arwiki", "bgwiki", "bnwiki", "cawiki", "commonswiki", "cswiki", "cswikisource", "cswiktionary", "cywiki", "dawiki", "dewiki", "dewikibooks", "dewikisource", "dewikivoyage", "dewiktionary", "elwiki", "enwiki", "enwikiquote", "enwikisource", "enwiktionary", "eowiki", "eswiki", "etwiki", "euwiki", "fawiki", "fiwiki", "frwiki", "frwikisource", "frwiktionary", "hewiki", "hewikisource", "hrwiki", "huwiki", "idwiki", "iswiki", "itwiki", "jawiki", "kawiki", "kowiki", "loginwiki", "lvwiki", "metawiki", "mkwiki", "mlwiki", "mrwiki", "mswiki", "nlwiki", "nlwiktionary", "nnwiki", "nowiki", "plwiki", "plwikimedia", "plwikisource", "plwiktionary", "ptwiki", "rowiki", "ruwiki", "sewikimedia", "simplewiki", "skwiki", "slwiki", "sourceswiki", "specieswiki", "svwiki", "svwiktionary", "tawiki", "testwiki", "tewiki", "thwiki", "trwiki", "urwiki", "viwiki", "wikidatawiki", "zh_yuewiki", "zhwiki" ]; AHconfig = { 'dewiki': { 'buttonA': 'Vandale [6h]', 'buttonB': 'kWzeM', 'buttonC': 'Vandale [1w]', 'IPb-duration': '6 hours', 'IPb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Tempb-duration': '1 week', 'Tempb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Userb-duration': 'never', 'Userb-reason': 'Kein Wille zur enzyklopädischen Mitarbeit erkennbar', }, 'wikidatawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '3 days', 'IPb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '1 week', 'Tempb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]]-only account [AdminHelper]', }, 'metawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '31 hours', 'IPb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '1 week', 'Tempb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism-only]] account [AdminHelper]', }, GSwikis: { buttonA: 'Vandal', buttonB: 'Vandal', buttonC: 'Vandal', 'IPb-duration': '24 hours', 'IPb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Tempb-duration': '1 week', 'Tempb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Userb-duration': 'never', 'Userb-reason': 'Vandalism-only account ([[m:GS|global sysop]] action – via AdminHelper)', } }; function configData(varname) { if (DBname in AHconfig) { mw.notify('x'); if (varname in AHconfig[DBname]) { return AHconfig[DBname][varname]; } } else { mw.notify('y'); return AHconfig.GSwikis.varname; } } // mw.notify configs function sendError(script, message) { mw.notify('Fehler in '+script+':\n\n'+message,{'type':'error','title':AdminHelper}); } function sendDone(message) { mw.notify(message,{'type':'success','title':AdminHelper}); } function sendInfo(message) { mw.notify(message,{'title':AdminHelper}); } // isPageInCategory() => Category checker function isPageInCategory(pageName, categoryName) { var isInCategory = false; return api.get({ action: 'query', prop: 'categories', titles: pageName, clcategories: categoryName, cllimit: 'max' }).then(function(data) { var pages = data.query.pages; for (var pageId in pages) { if (pages.hasOwnProperty(pageId)) { if (pages[pageId].categories && pages[pageId].categories.length > 0) { isInCategory = true; break; } } } return isInCategory; }).catch(function(error) { //sendError('isPageInCategory()', error); return false; }); } // deletePage() => delete function deletePage(pageName, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'delete', title: pageName, reason: reason, format: 'json' } ) .done(function (data) { location.reload(); } ); } else { sendError('deletePage()', 'Keine Berechtigung!'); } } // protectPage() => protect function protectPage(pageName, conf, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'protect', title: pageName, protections: conf, expiry: 'infinite', reason: reason, format: 'json' } ) .done(function (data) { if (userName == 'TenWhile6') { window.close(); } else { sendDone('Seite erfolgreich geschützt.'); } } ); } else { sendError('protectPage()', 'Keine Berechtigung!'); } } // isBlocked() => check block status function isBlocked(user) { var api = new mw.Api(); return api.get({ action: 'query', list: 'blocks', bkusers: user }).then(function(data) { if (data.query.blocks && data.query.blocks.length > 0) { var block = data.query.blocks[0]; if (block.expiry == 'infinity' && block.reason != 'Fehlende [[WP:Bezahltes Schreiben|Offenlegung bezahlter Bearbeitungen]] gemäß Ziffer 4 der [[:wmf:Terms of Use/de#4. Unterlassen bestimmter Handlungen|Nutzungsbedingungen]]') { return true; } else { return false; } } else { return false; } }).catch(function(error) { return false; }); } // fastblock => IPs and users function fbr(username, isAnon, isTemp) { api.get({ action: 'query', list: 'users', ususers: username, usprop: 'editcount', format: 'json' }).done(function(data) { if (isAnon) { username = mw.util.isIPv6Address(username) ? username + '/64' : username; } else { var ecount = data.query.users[0].editcount; if (ecount == undefined) { sendError('fastblock()','Name mit Klammerzusatz oder Skriptfehler.'); return; } else if (ecount > 50) { alert('Aus Sicherheitsgründen ist das Sperren von Benutzern mit über 50 Bearbeitungen nicht möglich.'); return; } } api.get({ action: 'query', format: 'json', list: 'logevents', letype: 'block', letitle: `User:${username}`, formatversion: 2 }).then(function(data) { len = data.query.logevents.length; var exp = isAnon ? configData('IPb-duration') : (isTemp ? configData('Tempb-duration') : configData('Userb-duration')); var reas = isAnon ? configData('IPb-reason') : (isTemp ? configData('Tempb-reason') : configData('Userb-reason')); if (len > 0) { alert(`${isAnon ? 'IP-Adresse' : (isTemp ? 'Tempkonto' : 'Benutzer')} hat ${len == 1 ? 'einen Sperrlogeintrag' : len+' Sperrlogeinträge'}.\nLeite daher zu manuellem Sperrdialog weiter (bitte OK klicken).`); window.location.href = `https://de.wikipedia.org/wiki/Spezial:Sperren/${username}`; } else { var confirmed = confirm(`--- SPERRE BESTÄTIGEN ---\nDauer: ${exp}\nbetrifft: ${username}\n${typeof ecount !== undefined ? `Editcount: ${ecount}\n`:''}Sperrlogeinträge: ${len}`); if (confirmed) { api.postWithToken('csrf', { action: 'block', user: username, expiry: exp, reason: reas, nocreate: 'true', autoblock: 'true', anononly: 'true', allowusertalk: 'false' }).then( function () { sendDone(username + ' gesperrt'); }).catch(function(error) { sendError('fastblock()', (error == 'permissiondenied' ? 'Keine Berechtigung!' : (error == 'baduser' ? 'Benutzer existiert nicht' : error))); }); }} }); }); } function fastblock(obj) { if( mw.config.get('wgCanonicalSpecialPageName') == 'Contributions' || mw.config.get('wgCanonicalSpecialPageName') == 'IPContributions' || mw.config.get('wgCanonicalSpecialPageName') == 'DeletedContributions' ) { $(document).ready(function ca_gbLinkContribs() { var show = document.getElementById('contentSub'); if(show) { var target = mw.config.get('wgRelevantUserName'); mw.notify(target); if (target !== null) { var elemfb = document.createElement('span'); var fb = document.createElement('a'); var isAnon = mw.util.isIPAddress(target); var isTemp = mw.util.isTemporaryUser(target); fb.href = '#block'; mw.notify(configData('buttonA')); mw.notify(configData('buttonB')); mw.notify(configData('buttonC')); fb.innerHTML = isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB')); fb.title = 'Sperre per fastblock()'; fb.addEventListener('click', function() { fbr(target, isAnon, isTemp); }); elemfb.appendChild(fb); document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemfb); } } }); } else { obj.find('span.mw-usertoollinks').each( function( idx, element ) { var isAnon = this.previousElementSibling.className.indexOf( 'mw-anonuserlink' ) >= 0; $( element ).contents().last().before((' | '), $('<a>').attr('href', '#block') .text(isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB'))) .click(function() { var username = $(this).parent().get( 0 ).previousElementSibling.textContent; fbr(username, isAnon); })); } ); } } // statIP => Statische IPs function statIP() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Benutzer:Statische IP (ungeschützt)').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Stat-IP-Schutz', 'ca-statprotect', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect' ); $(portletLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); var portletLink2 = mw.util.addPortletLink( 'p-search', '#', 'Stat-IP-Schutz', 'ca-statprotect2', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect2' ); $(portletLink2).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); } }); } } // LKerl => Löschkandidatenseite eines Tages als erl. markieren function LKerl() { if (thisPage.includes('Wikipedia:Löschkandidaten/')) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; if (pageData.includes('{{Löschkandidatenseite|erl=}}')) { if ((pageData.includes(']==') || pageData.includes('] ==') || pageData.includes('] ==')) == false) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LK erledigt', 'ca-LKerl', 'Seite als erledigt markieren', null, '#ca-LKerl' ); $(portletLink).click(function(e) { e.preventDefault(); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace('{{Löschkandidatenseite|erl=}}', '{{Löschkandidatenseite|erl=--~~~~}}'), summary: 'Löschkandidatenseite als erledigt markiert [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )} } }); } } // LAweg => Entferne LA im ANR function LAweg() { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Löschkandidat').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LA nach Behaltensentscheidung entfernen', 'ca-LAweg', 'Seite als erledigt markieren', null, '#ca-LAweg' ); $(portletLink).click(function(e) { e.preventDefault(); api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace(/<noinclude>.*?<\/noinclude>/gs, '').replace(/^\s*\n/, ''), summary: 'Löschantrag nach Behaltensentscheidung entfernt [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )}); } }); } // ImportartikelimBNR => füge {importartikel} hinzu, blende Kats function ImportartikelImBNR() { if (nameSpace == 2 && ['TenWhile6', 'Ameisenigel'].includes(userName) && thisPage.includes('/') && !(thisPage.includes('Benutzer:Versionen')) && !(thisPage.includes('Benutzer:CountCountBot')) && !(thisPage.includes(userName.replace(/ /g, '_')))) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|summary', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; console.log(data.query.pages[0].revisions[0].user); if (data.query.pages[0].revisions[0].user == userName && !(pageData.includes('{Importartikel}'))) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Importartikel', 'ca-IMP', 'Setze Vorlage und blende Kategorien aus', null, '#ca-IMP' ); $(portletLink).click(function(e) { e.preventDefault(); pageData = '{{Importartikel}}\n'+pageData; pageData = pageData+'-->'; pageData = pageData.replace('\n[[Ca', '\n<!--[[Ca'); pageData = pageData.replace('\n[[Kat', '\n<!--[[Kat'); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData, summary: 'Importartikel [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); }); } } )} } // Vdel => 'Verschieberest'-Löschungen function Vdel() { if ([0, 1, 2, 3, 4].includes(nameSpace)) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '2', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const revs = pageData.length; if (revs == 1) { const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; //const twoHoursInMilliseconds = 7 * 60 * 60 * 1000; var content = pageData[0].slots.main.content; if (!([2,3].includes(nameSpace)) || ([2,3].includes(nameSpace) && thisPage.includes("/"))) { if (content.match(new RegExp('#WEITERLEITUNG','g')) !== null) { content = content.replace('#WEITERLEITUNG [[', ''); content = content.replace(']]', ''); if ([1, 2].includes(nameSpace) | (nameSpace == 0 & content.match(new RegExp('Benutzer(|in):','g')) !== null)) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Verschieberest`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Verschieberest: [[${content}]]`); }); } } } } }); } } // BNR-SLA => Schnelllöschungen 'Wunsch des Benutzers' function BNRSLA() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; const twoHoursInMilliseconds = 2 * 60 * 60 * 1000; if (timeDifference < twoHoursInMilliseconds) { XrelevantPage = relevantPage.replace(/_/g, ' '); if (XrelevantPage.includes(pageData[0].user)) { if (pageData[0].slots.main.content.match(new RegExp('{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]b|Diese Vorlage wurde zum','g')) !== null) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`); }); } } } }); } }); } } // SpamWD => Schnelllöschungen 'Spam' function SpamdelWD() { if ([1,2,3].includes(nameSpace)) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Spam / advertising', 'ca-spamdelete', `delete the page using the reason Spam / advertising`, null, '#ca-spamdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Spam / advertising'); }); } } // erlBotmeldungen => erledigte Botmarkierungen function botDone() { if (nameSpace == 1) { isPageInCategory(thisPage, 'Category:Wikipedia:Defekte Weblinks/Bot/Keine auffindbaren URL').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pages = data.query.pages[0].revisions[0].slots.main.content; var lines = pages.split('\n'); var okay = true; for (var i = 0; i < lines.length; i++) { if (lines[i] == '') {} else if (lines[i].includes('Defekter Weblink') || lines[i].includes('Defekte Weblinks')) { break; } else { okay = false; } } for (var q = lines.length-1; q >= 0; q--) { //console.log(`lines[${q}] == ${lines[q]}`); if (lines[q] == '') {} else if (['GiftBot', 'MerlLinkBot', 'Zwobot', 'SpBot', 'Luke081515Bot'].includes(lines[q])) { break; } else { okay = false; } } for (var u = 0; u < lines.length; u++) { var line = lines[u]; var count = line.split('==').length - 1; if (count > 1) { if (!(line.includes('Defekter Weblink') || line.includes('Defekte Weblinks'))) { okay = false; } } } if (okay == true) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } }); } else { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '5', rvprop: 'content|user', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; var revC = pageData.length-1; var currentContent = pageData[0].slots.main.content; if ((currentContent == '' | isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen')) && revC < 5 && userName == 'TenWhile6') { if (!window.location.href.includes('index.php') && !window.location.href.includes('Spezial')) { const ptt = thisPage.replace(/ /g, '_'); window.location.href = `https://de.wikipedia.org/w/index.php?title=${ptt}&action=history`; } else { for (var ya = revC; ya >= 1; ya--) { if (!(['GiftBot', 'Luke081515Bot'].includes(pageData[ya].user))) { if (pageData[ya].slots.main.content != pageData[ya+1].slots.main.content) { return; } } } var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } } }); } }); } } // Gesperrt -> GB + protect function GB() { if (nameSpace == 3) { var userName = mw.config.get('wgTitle').split('/')[0]; isBlocked(userName).then(function(result) { if (result) { if (pageProtection.indexOf('sysop') == -1) { sendInfo('Infinit gesperrt - Disk aber ungeschützt!\nBitte Button anklicken!'); var GBportLink = mw.util.addPortletLink( 'p-cactions', '#', 'GB + Schutz', 'ca-gb', 'Schütze Disk und setze {{GB}} - Benutzer ist infinit gesperrt.', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=sysop|move=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); api.postWithEditToken({ action: 'edit', title: thisPage, text: '{{GB}}', summary: 'Gesperrter Benutzer' }).then(function(data) { if (data && data.edit && data.edit.result == 'Success') { sendDone('GB erfolgreich'); } else { sendError('GB()', 'erneut versuchen'); } }).catch(function(error) { sendError('GB()', 'erneut versuchen'); }); } ); } } }); } } // Gesperrt -> GB + protect function GBX() { if (nameSpace == 3 & userName == 'TenWhile6') { var userNameX = mw.config.get('wgTitle').split('/')[0]; isBlocked(userNameX).then(function(result) { if (result) { var GBportLink = mw.util.addPortletLink( 'p-search', '#', 'sysop-schutz', 'ca-gb', 'tw6only', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'create=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); } ); } }); } } function filterstuff() { if (nameSpace == -1) { if (window.location.href.includes('/examine/log/')) { var DAportLink = mw.util.addPortletLink( 'p-search', '#', 'Diff ansehen', 'ca-da', 'Versionsunterschied aufrufen', null, '#ca-da' ); $(DAportLink).click(function(e) { e.preventDefault(); hrefX = window.location.href.split('examine/log/'); window.location.href = mw.config.get('wgServer')+'/wiki/Special:AbuseLog/'+hrefX[1]; }); } } } if (DBname == 'dewiki') { GB(); GBX(); botDone(); BNRSLA(); Vdel(); statIP(); LKerl(); LAweg(); ImportartikelImBNR(); } else if (DBname == 'wikidatawiki') { SpamdelWD(); } if (['dewiki', 'wikidatawiki', 'metawiki'].includes(DBname) || (globalSysops.includes(userName) && !(optedOutFromGlobalSysops.includes(DBname)))) { mw.hook('wikipage.content').add(function(obj) { fastblock(obj); }); } filterstuff(); //</nowiki> i6r5e0krnxxcxrmy5qliksoz3kl7gfe 665228 665227 2025-07-03T07:21:51Z TenWhile6 51225 665228 javascript text/javascript //<nowiki> Av = 'v1.1'; An = 'AdminHelper'; AdminHelper = `${An} ${Av}`; var api = new mw.Api(); const DBname = mw.config.get('wgDBname'); const thisPage = mw.config.get('wgPageName'); const relevantPage = mw.config.get('wgRelevantPageName'); const userName = mw.config.get('wgUserName'); const nameSpace = mw.config.get('wgNamespaceNumber'); const pageProtection = mw.config.get('wgRestrictionEdit'); const userGroups = mw.config.get('wgUserGroups'); const globalSysops = [ "A09", "Ameisenigel", "Amire80", "Biplab Anand", "BRPever", "CptViraj", "DARIO SEVERI", "Fehufanga", "Baskerville", "Iluvatar_", "Infinite0694", "LR0725", "M7", "MF-W", "Minorax", "Mtarch11", "Praxidicae", "Renvoy", "SHB2000", "Superpes", "Svartava", "SyunSyunMinMin", "Tanbiruzzaman", "Teles", "TenWhile6", "Ternera", "TheresNoTime", "Turkmen", "WhitePhosphorus", "WikiBayer" ]; const optedOutFromGlobalSysops = [ "anwiki", "arwiki", "bgwiki", "bnwiki", "cawiki", "commonswiki", "cswiki", "cswikisource", "cswiktionary", "cywiki", "dawiki", "dewiki", "dewikibooks", "dewikisource", "dewikivoyage", "dewiktionary", "elwiki", "enwiki", "enwikiquote", "enwikisource", "enwiktionary", "eowiki", "eswiki", "etwiki", "euwiki", "fawiki", "fiwiki", "frwiki", "frwikisource", "frwiktionary", "hewiki", "hewikisource", "hrwiki", "huwiki", "idwiki", "iswiki", "itwiki", "jawiki", "kawiki", "kowiki", "loginwiki", "lvwiki", "metawiki", "mkwiki", "mlwiki", "mrwiki", "mswiki", "nlwiki", "nlwiktionary", "nnwiki", "nowiki", "plwiki", "plwikimedia", "plwikisource", "plwiktionary", "ptwiki", "rowiki", "ruwiki", "sewikimedia", "simplewiki", "skwiki", "slwiki", "sourceswiki", "specieswiki", "svwiki", "svwiktionary", "tawiki", "testwiki", "tewiki", "thwiki", "trwiki", "urwiki", "viwiki", "wikidatawiki", "zh_yuewiki", "zhwiki" ]; AHconfig = { 'dewiki': { 'buttonA': 'Vandale [6h]', 'buttonB': 'kWzeM', 'buttonC': 'Vandale [1w]', 'IPb-duration': '6 hours', 'IPb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Tempb-duration': '1 week', 'Tempb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Userb-duration': 'never', 'Userb-reason': 'Kein Wille zur enzyklopädischen Mitarbeit erkennbar', }, 'wikidatawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '3 days', 'IPb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '1 week', 'Tempb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]]-only account [AdminHelper]', }, 'metawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '31 hours', 'IPb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '1 week', 'Tempb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism-only]] account [AdminHelper]', }, GSwikis: { buttonA: 'Vandal', buttonB: 'Vandal', buttonC: 'Vandal', 'IPb-duration': '24 hours', 'IPb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Tempb-duration': '1 week', 'Tempb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Userb-duration': 'never', 'Userb-reason': 'Vandalism-only account ([[m:GS|global sysop]] action – via AdminHelper)', } }; function configData(varname) { if (DBname in AHconfig) { mw.notify('x'); if (varname in AHconfig[DBname]) { return AHconfig[DBname][varname]; } } else { mw.notify('y'); return AHconfig.GSwikis[varname]; } } // mw.notify configs function sendError(script, message) { mw.notify('Fehler in '+script+':\n\n'+message,{'type':'error','title':AdminHelper}); } function sendDone(message) { mw.notify(message,{'type':'success','title':AdminHelper}); } function sendInfo(message) { mw.notify(message,{'title':AdminHelper}); } // isPageInCategory() => Category checker function isPageInCategory(pageName, categoryName) { var isInCategory = false; return api.get({ action: 'query', prop: 'categories', titles: pageName, clcategories: categoryName, cllimit: 'max' }).then(function(data) { var pages = data.query.pages; for (var pageId in pages) { if (pages.hasOwnProperty(pageId)) { if (pages[pageId].categories && pages[pageId].categories.length > 0) { isInCategory = true; break; } } } return isInCategory; }).catch(function(error) { //sendError('isPageInCategory()', error); return false; }); } // deletePage() => delete function deletePage(pageName, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'delete', title: pageName, reason: reason, format: 'json' } ) .done(function (data) { location.reload(); } ); } else { sendError('deletePage()', 'Keine Berechtigung!'); } } // protectPage() => protect function protectPage(pageName, conf, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'protect', title: pageName, protections: conf, expiry: 'infinite', reason: reason, format: 'json' } ) .done(function (data) { if (userName == 'TenWhile6') { window.close(); } else { sendDone('Seite erfolgreich geschützt.'); } } ); } else { sendError('protectPage()', 'Keine Berechtigung!'); } } // isBlocked() => check block status function isBlocked(user) { var api = new mw.Api(); return api.get({ action: 'query', list: 'blocks', bkusers: user }).then(function(data) { if (data.query.blocks && data.query.blocks.length > 0) { var block = data.query.blocks[0]; if (block.expiry == 'infinity' && block.reason != 'Fehlende [[WP:Bezahltes Schreiben|Offenlegung bezahlter Bearbeitungen]] gemäß Ziffer 4 der [[:wmf:Terms of Use/de#4. Unterlassen bestimmter Handlungen|Nutzungsbedingungen]]') { return true; } else { return false; } } else { return false; } }).catch(function(error) { return false; }); } // fastblock => IPs and users function fbr(username, isAnon, isTemp) { api.get({ action: 'query', list: 'users', ususers: username, usprop: 'editcount', format: 'json' }).done(function(data) { if (isAnon) { username = mw.util.isIPv6Address(username) ? username + '/64' : username; } else { var ecount = data.query.users[0].editcount; if (ecount == undefined) { sendError('fastblock()','Name mit Klammerzusatz oder Skriptfehler.'); return; } else if (ecount > 50) { alert('Aus Sicherheitsgründen ist das Sperren von Benutzern mit über 50 Bearbeitungen nicht möglich.'); return; } } api.get({ action: 'query', format: 'json', list: 'logevents', letype: 'block', letitle: `User:${username}`, formatversion: 2 }).then(function(data) { len = data.query.logevents.length; var exp = isAnon ? configData('IPb-duration') : (isTemp ? configData('Tempb-duration') : configData('Userb-duration')); var reas = isAnon ? configData('IPb-reason') : (isTemp ? configData('Tempb-reason') : configData('Userb-reason')); if (len > 0) { alert(`${isAnon ? 'IP-Adresse' : (isTemp ? 'Tempkonto' : 'Benutzer')} hat ${len == 1 ? 'einen Sperrlogeintrag' : len+' Sperrlogeinträge'}.\nLeite daher zu manuellem Sperrdialog weiter (bitte OK klicken).`); window.location.href = `https://de.wikipedia.org/wiki/Spezial:Sperren/${username}`; } else { var confirmed = confirm(`--- SPERRE BESTÄTIGEN ---\nDauer: ${exp}\nbetrifft: ${username}\n${typeof ecount !== undefined ? `Editcount: ${ecount}\n`:''}Sperrlogeinträge: ${len}`); if (confirmed) { api.postWithToken('csrf', { action: 'block', user: username, expiry: exp, reason: reas, nocreate: 'true', autoblock: 'true', anononly: 'true', allowusertalk: 'false' }).then( function () { sendDone(username + ' gesperrt'); }).catch(function(error) { sendError('fastblock()', (error == 'permissiondenied' ? 'Keine Berechtigung!' : (error == 'baduser' ? 'Benutzer existiert nicht' : error))); }); }} }); }); } function fastblock(obj) { if( mw.config.get('wgCanonicalSpecialPageName') == 'Contributions' || mw.config.get('wgCanonicalSpecialPageName') == 'IPContributions' || mw.config.get('wgCanonicalSpecialPageName') == 'DeletedContributions' ) { $(document).ready(function ca_gbLinkContribs() { var show = document.getElementById('contentSub'); if(show) { var target = mw.config.get('wgRelevantUserName'); mw.notify(target); if (target !== null) { var elemfb = document.createElement('span'); var fb = document.createElement('a'); var isAnon = mw.util.isIPAddress(target); var isTemp = mw.util.isTemporaryUser(target); fb.href = '#block'; mw.notify(configData('buttonA')); mw.notify(configData('buttonB')); mw.notify(configData('buttonC')); fb.innerHTML = isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB')); fb.title = 'Sperre per fastblock()'; fb.addEventListener('click', function() { fbr(target, isAnon, isTemp); }); elemfb.appendChild(fb); document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemfb); } } }); } else { obj.find('span.mw-usertoollinks').each( function( idx, element ) { var isAnon = this.previousElementSibling.className.indexOf( 'mw-anonuserlink' ) >= 0; $( element ).contents().last().before((' | '), $('<a>').attr('href', '#block') .text(isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB'))) .click(function() { var username = $(this).parent().get( 0 ).previousElementSibling.textContent; fbr(username, isAnon); })); } ); } } // statIP => Statische IPs function statIP() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Benutzer:Statische IP (ungeschützt)').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Stat-IP-Schutz', 'ca-statprotect', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect' ); $(portletLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); var portletLink2 = mw.util.addPortletLink( 'p-search', '#', 'Stat-IP-Schutz', 'ca-statprotect2', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect2' ); $(portletLink2).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); } }); } } // LKerl => Löschkandidatenseite eines Tages als erl. markieren function LKerl() { if (thisPage.includes('Wikipedia:Löschkandidaten/')) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; if (pageData.includes('{{Löschkandidatenseite|erl=}}')) { if ((pageData.includes(']==') || pageData.includes('] ==') || pageData.includes('] ==')) == false) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LK erledigt', 'ca-LKerl', 'Seite als erledigt markieren', null, '#ca-LKerl' ); $(portletLink).click(function(e) { e.preventDefault(); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace('{{Löschkandidatenseite|erl=}}', '{{Löschkandidatenseite|erl=--~~~~}}'), summary: 'Löschkandidatenseite als erledigt markiert [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )} } }); } } // LAweg => Entferne LA im ANR function LAweg() { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Löschkandidat').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LA nach Behaltensentscheidung entfernen', 'ca-LAweg', 'Seite als erledigt markieren', null, '#ca-LAweg' ); $(portletLink).click(function(e) { e.preventDefault(); api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace(/<noinclude>.*?<\/noinclude>/gs, '').replace(/^\s*\n/, ''), summary: 'Löschantrag nach Behaltensentscheidung entfernt [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )}); } }); } // ImportartikelimBNR => füge {importartikel} hinzu, blende Kats function ImportartikelImBNR() { if (nameSpace == 2 && ['TenWhile6', 'Ameisenigel'].includes(userName) && thisPage.includes('/') && !(thisPage.includes('Benutzer:Versionen')) && !(thisPage.includes('Benutzer:CountCountBot')) && !(thisPage.includes(userName.replace(/ /g, '_')))) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|summary', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; console.log(data.query.pages[0].revisions[0].user); if (data.query.pages[0].revisions[0].user == userName && !(pageData.includes('{Importartikel}'))) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Importartikel', 'ca-IMP', 'Setze Vorlage und blende Kategorien aus', null, '#ca-IMP' ); $(portletLink).click(function(e) { e.preventDefault(); pageData = '{{Importartikel}}\n'+pageData; pageData = pageData+'-->'; pageData = pageData.replace('\n[[Ca', '\n<!--[[Ca'); pageData = pageData.replace('\n[[Kat', '\n<!--[[Kat'); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData, summary: 'Importartikel [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); }); } } )} } // Vdel => 'Verschieberest'-Löschungen function Vdel() { if ([0, 1, 2, 3, 4].includes(nameSpace)) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '2', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const revs = pageData.length; if (revs == 1) { const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; //const twoHoursInMilliseconds = 7 * 60 * 60 * 1000; var content = pageData[0].slots.main.content; if (!([2,3].includes(nameSpace)) || ([2,3].includes(nameSpace) && thisPage.includes("/"))) { if (content.match(new RegExp('#WEITERLEITUNG','g')) !== null) { content = content.replace('#WEITERLEITUNG [[', ''); content = content.replace(']]', ''); if ([1, 2].includes(nameSpace) | (nameSpace == 0 & content.match(new RegExp('Benutzer(|in):','g')) !== null)) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Verschieberest`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Verschieberest: [[${content}]]`); }); } } } } }); } } // BNR-SLA => Schnelllöschungen 'Wunsch des Benutzers' function BNRSLA() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; const twoHoursInMilliseconds = 2 * 60 * 60 * 1000; if (timeDifference < twoHoursInMilliseconds) { XrelevantPage = relevantPage.replace(/_/g, ' '); if (XrelevantPage.includes(pageData[0].user)) { if (pageData[0].slots.main.content.match(new RegExp('{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]b|Diese Vorlage wurde zum','g')) !== null) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`); }); } } } }); } }); } } // SpamWD => Schnelllöschungen 'Spam' function SpamdelWD() { if ([1,2,3].includes(nameSpace)) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Spam / advertising', 'ca-spamdelete', `delete the page using the reason Spam / advertising`, null, '#ca-spamdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Spam / advertising'); }); } } // erlBotmeldungen => erledigte Botmarkierungen function botDone() { if (nameSpace == 1) { isPageInCategory(thisPage, 'Category:Wikipedia:Defekte Weblinks/Bot/Keine auffindbaren URL').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pages = data.query.pages[0].revisions[0].slots.main.content; var lines = pages.split('\n'); var okay = true; for (var i = 0; i < lines.length; i++) { if (lines[i] == '') {} else if (lines[i].includes('Defekter Weblink') || lines[i].includes('Defekte Weblinks')) { break; } else { okay = false; } } for (var q = lines.length-1; q >= 0; q--) { //console.log(`lines[${q}] == ${lines[q]}`); if (lines[q] == '') {} else if (['GiftBot', 'MerlLinkBot', 'Zwobot', 'SpBot', 'Luke081515Bot'].includes(lines[q])) { break; } else { okay = false; } } for (var u = 0; u < lines.length; u++) { var line = lines[u]; var count = line.split('==').length - 1; if (count > 1) { if (!(line.includes('Defekter Weblink') || line.includes('Defekte Weblinks'))) { okay = false; } } } if (okay == true) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } }); } else { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '5', rvprop: 'content|user', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; var revC = pageData.length-1; var currentContent = pageData[0].slots.main.content; if ((currentContent == '' | isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen')) && revC < 5 && userName == 'TenWhile6') { if (!window.location.href.includes('index.php') && !window.location.href.includes('Spezial')) { const ptt = thisPage.replace(/ /g, '_'); window.location.href = `https://de.wikipedia.org/w/index.php?title=${ptt}&action=history`; } else { for (var ya = revC; ya >= 1; ya--) { if (!(['GiftBot', 'Luke081515Bot'].includes(pageData[ya].user))) { if (pageData[ya].slots.main.content != pageData[ya+1].slots.main.content) { return; } } } var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } } }); } }); } } // Gesperrt -> GB + protect function GB() { if (nameSpace == 3) { var userName = mw.config.get('wgTitle').split('/')[0]; isBlocked(userName).then(function(result) { if (result) { if (pageProtection.indexOf('sysop') == -1) { sendInfo('Infinit gesperrt - Disk aber ungeschützt!\nBitte Button anklicken!'); var GBportLink = mw.util.addPortletLink( 'p-cactions', '#', 'GB + Schutz', 'ca-gb', 'Schütze Disk und setze {{GB}} - Benutzer ist infinit gesperrt.', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=sysop|move=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); api.postWithEditToken({ action: 'edit', title: thisPage, text: '{{GB}}', summary: 'Gesperrter Benutzer' }).then(function(data) { if (data && data.edit && data.edit.result == 'Success') { sendDone('GB erfolgreich'); } else { sendError('GB()', 'erneut versuchen'); } }).catch(function(error) { sendError('GB()', 'erneut versuchen'); }); } ); } } }); } } // Gesperrt -> GB + protect function GBX() { if (nameSpace == 3 & userName == 'TenWhile6') { var userNameX = mw.config.get('wgTitle').split('/')[0]; isBlocked(userNameX).then(function(result) { if (result) { var GBportLink = mw.util.addPortletLink( 'p-search', '#', 'sysop-schutz', 'ca-gb', 'tw6only', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'create=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); } ); } }); } } function filterstuff() { if (nameSpace == -1) { if (window.location.href.includes('/examine/log/')) { var DAportLink = mw.util.addPortletLink( 'p-search', '#', 'Diff ansehen', 'ca-da', 'Versionsunterschied aufrufen', null, '#ca-da' ); $(DAportLink).click(function(e) { e.preventDefault(); hrefX = window.location.href.split('examine/log/'); window.location.href = mw.config.get('wgServer')+'/wiki/Special:AbuseLog/'+hrefX[1]; }); } } } if (DBname == 'dewiki') { GB(); GBX(); botDone(); BNRSLA(); Vdel(); statIP(); LKerl(); LAweg(); ImportartikelImBNR(); } else if (DBname == 'wikidatawiki') { SpamdelWD(); } if (['dewiki', 'wikidatawiki', 'metawiki'].includes(DBname) || (globalSysops.includes(userName) && !(optedOutFromGlobalSysops.includes(DBname)))) { mw.hook('wikipage.content').add(function(obj) { fastblock(obj); }); } filterstuff(); //</nowiki> 71t4s8cj5qy0jzbuw8wolnfb1pdz4mh 665229 665228 2025-07-03T07:22:16Z TenWhile6 51225 665229 javascript text/javascript //<nowiki> Av = 'v1.1'; An = 'AdminHelper'; AdminHelper = `${An} ${Av}`; var api = new mw.Api(); const DBname = mw.config.get('wgDBname'); const thisPage = mw.config.get('wgPageName'); const relevantPage = mw.config.get('wgRelevantPageName'); const userName = mw.config.get('wgUserName'); const nameSpace = mw.config.get('wgNamespaceNumber'); const pageProtection = mw.config.get('wgRestrictionEdit'); const userGroups = mw.config.get('wgUserGroups'); const globalSysops = [ "A09", "Ameisenigel", "Amire80", "Biplab Anand", "BRPever", "CptViraj", "DARIO SEVERI", "Fehufanga", "Baskerville", "Iluvatar_", "Infinite0694", "LR0725", "M7", "MF-W", "Minorax", "Mtarch11", "Praxidicae", "Renvoy", "SHB2000", "Superpes", "Svartava", "SyunSyunMinMin", "Tanbiruzzaman", "Teles", "TenWhile6", "Ternera", "TheresNoTime", "Turkmen", "WhitePhosphorus", "WikiBayer" ]; const optedOutFromGlobalSysops = [ "anwiki", "arwiki", "bgwiki", "bnwiki", "cawiki", "commonswiki", "cswiki", "cswikisource", "cswiktionary", "cywiki", "dawiki", "dewiki", "dewikibooks", "dewikisource", "dewikivoyage", "dewiktionary", "elwiki", "enwiki", "enwikiquote", "enwikisource", "enwiktionary", "eowiki", "eswiki", "etwiki", "euwiki", "fawiki", "fiwiki", "frwiki", "frwikisource", "frwiktionary", "hewiki", "hewikisource", "hrwiki", "huwiki", "idwiki", "iswiki", "itwiki", "jawiki", "kawiki", "kowiki", "loginwiki", "lvwiki", "metawiki", "mkwiki", "mlwiki", "mrwiki", "mswiki", "nlwiki", "nlwiktionary", "nnwiki", "nowiki", "plwiki", "plwikimedia", "plwikisource", "plwiktionary", "ptwiki", "rowiki", "ruwiki", "sewikimedia", "simplewiki", "skwiki", "slwiki", "sourceswiki", "specieswiki", "svwiki", "svwiktionary", "tawiki", "testwiki", "tewiki", "thwiki", "trwiki", "urwiki", "viwiki", "wikidatawiki", "zh_yuewiki", "zhwiki" ]; AHconfig = { 'dewiki': { 'buttonA': 'Vandale [6h]', 'buttonB': 'kWzeM', 'buttonC': 'Vandale [1w]', 'IPb-duration': '6 hours', 'IPb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Tempb-duration': '1 week', 'Tempb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Userb-duration': 'never', 'Userb-reason': 'Kein Wille zur enzyklopädischen Mitarbeit erkennbar', }, 'wikidatawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '3 days', 'IPb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '1 week', 'Tempb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]]-only account [AdminHelper]', }, 'metawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '31 hours', 'IPb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '1 week', 'Tempb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism-only]] account [AdminHelper]', }, GSwikis: { buttonA: 'Vandal', buttonB: 'Vandal', buttonC: 'Vandal', 'IPb-duration': '24 hours', 'IPb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Tempb-duration': '1 week', 'Tempb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Userb-duration': 'never', 'Userb-reason': 'Vandalism-only account ([[m:GS|global sysop]] action – via AdminHelper)', } }; function configData(varname) { if (DBname in AHconfig) { if (varname in AHconfig[DBname]) { return AHconfig[DBname][varname]; } } else { return AHconfig.GSwikis[varname]; } } // mw.notify configs function sendError(script, message) { mw.notify('Fehler in '+script+':\n\n'+message,{'type':'error','title':AdminHelper}); } function sendDone(message) { mw.notify(message,{'type':'success','title':AdminHelper}); } function sendInfo(message) { mw.notify(message,{'title':AdminHelper}); } // isPageInCategory() => Category checker function isPageInCategory(pageName, categoryName) { var isInCategory = false; return api.get({ action: 'query', prop: 'categories', titles: pageName, clcategories: categoryName, cllimit: 'max' }).then(function(data) { var pages = data.query.pages; for (var pageId in pages) { if (pages.hasOwnProperty(pageId)) { if (pages[pageId].categories && pages[pageId].categories.length > 0) { isInCategory = true; break; } } } return isInCategory; }).catch(function(error) { //sendError('isPageInCategory()', error); return false; }); } // deletePage() => delete function deletePage(pageName, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'delete', title: pageName, reason: reason, format: 'json' } ) .done(function (data) { location.reload(); } ); } else { sendError('deletePage()', 'Keine Berechtigung!'); } } // protectPage() => protect function protectPage(pageName, conf, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'protect', title: pageName, protections: conf, expiry: 'infinite', reason: reason, format: 'json' } ) .done(function (data) { if (userName == 'TenWhile6') { window.close(); } else { sendDone('Seite erfolgreich geschützt.'); } } ); } else { sendError('protectPage()', 'Keine Berechtigung!'); } } // isBlocked() => check block status function isBlocked(user) { var api = new mw.Api(); return api.get({ action: 'query', list: 'blocks', bkusers: user }).then(function(data) { if (data.query.blocks && data.query.blocks.length > 0) { var block = data.query.blocks[0]; if (block.expiry == 'infinity' && block.reason != 'Fehlende [[WP:Bezahltes Schreiben|Offenlegung bezahlter Bearbeitungen]] gemäß Ziffer 4 der [[:wmf:Terms of Use/de#4. Unterlassen bestimmter Handlungen|Nutzungsbedingungen]]') { return true; } else { return false; } } else { return false; } }).catch(function(error) { return false; }); } // fastblock => IPs and users function fbr(username, isAnon, isTemp) { api.get({ action: 'query', list: 'users', ususers: username, usprop: 'editcount', format: 'json' }).done(function(data) { if (isAnon) { username = mw.util.isIPv6Address(username) ? username + '/64' : username; } else { var ecount = data.query.users[0].editcount; if (ecount == undefined) { sendError('fastblock()','Name mit Klammerzusatz oder Skriptfehler.'); return; } else if (ecount > 50) { alert('Aus Sicherheitsgründen ist das Sperren von Benutzern mit über 50 Bearbeitungen nicht möglich.'); return; } } api.get({ action: 'query', format: 'json', list: 'logevents', letype: 'block', letitle: `User:${username}`, formatversion: 2 }).then(function(data) { len = data.query.logevents.length; var exp = isAnon ? configData('IPb-duration') : (isTemp ? configData('Tempb-duration') : configData('Userb-duration')); var reas = isAnon ? configData('IPb-reason') : (isTemp ? configData('Tempb-reason') : configData('Userb-reason')); if (len > 0) { alert(`${isAnon ? 'IP-Adresse' : (isTemp ? 'Tempkonto' : 'Benutzer')} hat ${len == 1 ? 'einen Sperrlogeintrag' : len+' Sperrlogeinträge'}.\nLeite daher zu manuellem Sperrdialog weiter (bitte OK klicken).`); window.location.href = `https://de.wikipedia.org/wiki/Spezial:Sperren/${username}`; } else { var confirmed = confirm(`--- SPERRE BESTÄTIGEN ---\nDauer: ${exp}\nbetrifft: ${username}\n${typeof ecount !== undefined ? `Editcount: ${ecount}\n`:''}Sperrlogeinträge: ${len}`); if (confirmed) { api.postWithToken('csrf', { action: 'block', user: username, expiry: exp, reason: reas, nocreate: 'true', autoblock: 'true', anononly: 'true', allowusertalk: 'false' }).then( function () { sendDone(username + ' gesperrt'); }).catch(function(error) { sendError('fastblock()', (error == 'permissiondenied' ? 'Keine Berechtigung!' : (error == 'baduser' ? 'Benutzer existiert nicht' : error))); }); }} }); }); } function fastblock(obj) { if( mw.config.get('wgCanonicalSpecialPageName') == 'Contributions' || mw.config.get('wgCanonicalSpecialPageName') == 'IPContributions' || mw.config.get('wgCanonicalSpecialPageName') == 'DeletedContributions' ) { $(document).ready(function ca_gbLinkContribs() { var show = document.getElementById('contentSub'); if(show) { var target = mw.config.get('wgRelevantUserName'); if (target !== null) { var elemfb = document.createElement('span'); var fb = document.createElement('a'); var isAnon = mw.util.isIPAddress(target); var isTemp = mw.util.isTemporaryUser(target); fb.href = '#block'; fb.innerHTML = isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB')); fb.title = 'Sperre per fastblock()'; fb.addEventListener('click', function() { fbr(target, isAnon, isTemp); }); elemfb.appendChild(fb); document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemfb); } } }); } else { obj.find('span.mw-usertoollinks').each( function( idx, element ) { var isAnon = this.previousElementSibling.className.indexOf( 'mw-anonuserlink' ) >= 0; $( element ).contents().last().before((' | '), $('<a>').attr('href', '#block') .text(isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB'))) .click(function() { var username = $(this).parent().get( 0 ).previousElementSibling.textContent; fbr(username, isAnon); })); } ); } } // statIP => Statische IPs function statIP() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Benutzer:Statische IP (ungeschützt)').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Stat-IP-Schutz', 'ca-statprotect', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect' ); $(portletLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); var portletLink2 = mw.util.addPortletLink( 'p-search', '#', 'Stat-IP-Schutz', 'ca-statprotect2', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect2' ); $(portletLink2).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); } }); } } // LKerl => Löschkandidatenseite eines Tages als erl. markieren function LKerl() { if (thisPage.includes('Wikipedia:Löschkandidaten/')) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; if (pageData.includes('{{Löschkandidatenseite|erl=}}')) { if ((pageData.includes(']==') || pageData.includes('] ==') || pageData.includes('] ==')) == false) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LK erledigt', 'ca-LKerl', 'Seite als erledigt markieren', null, '#ca-LKerl' ); $(portletLink).click(function(e) { e.preventDefault(); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace('{{Löschkandidatenseite|erl=}}', '{{Löschkandidatenseite|erl=--~~~~}}'), summary: 'Löschkandidatenseite als erledigt markiert [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )} } }); } } // LAweg => Entferne LA im ANR function LAweg() { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Löschkandidat').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LA nach Behaltensentscheidung entfernen', 'ca-LAweg', 'Seite als erledigt markieren', null, '#ca-LAweg' ); $(portletLink).click(function(e) { e.preventDefault(); api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace(/<noinclude>.*?<\/noinclude>/gs, '').replace(/^\s*\n/, ''), summary: 'Löschantrag nach Behaltensentscheidung entfernt [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )}); } }); } // ImportartikelimBNR => füge {importartikel} hinzu, blende Kats function ImportartikelImBNR() { if (nameSpace == 2 && ['TenWhile6', 'Ameisenigel'].includes(userName) && thisPage.includes('/') && !(thisPage.includes('Benutzer:Versionen')) && !(thisPage.includes('Benutzer:CountCountBot')) && !(thisPage.includes(userName.replace(/ /g, '_')))) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|summary', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; console.log(data.query.pages[0].revisions[0].user); if (data.query.pages[0].revisions[0].user == userName && !(pageData.includes('{Importartikel}'))) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Importartikel', 'ca-IMP', 'Setze Vorlage und blende Kategorien aus', null, '#ca-IMP' ); $(portletLink).click(function(e) { e.preventDefault(); pageData = '{{Importartikel}}\n'+pageData; pageData = pageData+'-->'; pageData = pageData.replace('\n[[Ca', '\n<!--[[Ca'); pageData = pageData.replace('\n[[Kat', '\n<!--[[Kat'); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData, summary: 'Importartikel [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); }); } } )} } // Vdel => 'Verschieberest'-Löschungen function Vdel() { if ([0, 1, 2, 3, 4].includes(nameSpace)) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '2', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const revs = pageData.length; if (revs == 1) { const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; //const twoHoursInMilliseconds = 7 * 60 * 60 * 1000; var content = pageData[0].slots.main.content; if (!([2,3].includes(nameSpace)) || ([2,3].includes(nameSpace) && thisPage.includes("/"))) { if (content.match(new RegExp('#WEITERLEITUNG','g')) !== null) { content = content.replace('#WEITERLEITUNG [[', ''); content = content.replace(']]', ''); if ([1, 2].includes(nameSpace) | (nameSpace == 0 & content.match(new RegExp('Benutzer(|in):','g')) !== null)) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Verschieberest`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Verschieberest: [[${content}]]`); }); } } } } }); } } // BNR-SLA => Schnelllöschungen 'Wunsch des Benutzers' function BNRSLA() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; const twoHoursInMilliseconds = 2 * 60 * 60 * 1000; if (timeDifference < twoHoursInMilliseconds) { XrelevantPage = relevantPage.replace(/_/g, ' '); if (XrelevantPage.includes(pageData[0].user)) { if (pageData[0].slots.main.content.match(new RegExp('{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]b|Diese Vorlage wurde zum','g')) !== null) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`); }); } } } }); } }); } } // SpamWD => Schnelllöschungen 'Spam' function SpamdelWD() { if ([1,2,3].includes(nameSpace)) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Spam / advertising', 'ca-spamdelete', `delete the page using the reason Spam / advertising`, null, '#ca-spamdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Spam / advertising'); }); } } // erlBotmeldungen => erledigte Botmarkierungen function botDone() { if (nameSpace == 1) { isPageInCategory(thisPage, 'Category:Wikipedia:Defekte Weblinks/Bot/Keine auffindbaren URL').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pages = data.query.pages[0].revisions[0].slots.main.content; var lines = pages.split('\n'); var okay = true; for (var i = 0; i < lines.length; i++) { if (lines[i] == '') {} else if (lines[i].includes('Defekter Weblink') || lines[i].includes('Defekte Weblinks')) { break; } else { okay = false; } } for (var q = lines.length-1; q >= 0; q--) { //console.log(`lines[${q}] == ${lines[q]}`); if (lines[q] == '') {} else if (['GiftBot', 'MerlLinkBot', 'Zwobot', 'SpBot', 'Luke081515Bot'].includes(lines[q])) { break; } else { okay = false; } } for (var u = 0; u < lines.length; u++) { var line = lines[u]; var count = line.split('==').length - 1; if (count > 1) { if (!(line.includes('Defekter Weblink') || line.includes('Defekte Weblinks'))) { okay = false; } } } if (okay == true) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } }); } else { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '5', rvprop: 'content|user', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; var revC = pageData.length-1; var currentContent = pageData[0].slots.main.content; if ((currentContent == '' | isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen')) && revC < 5 && userName == 'TenWhile6') { if (!window.location.href.includes('index.php') && !window.location.href.includes('Spezial')) { const ptt = thisPage.replace(/ /g, '_'); window.location.href = `https://de.wikipedia.org/w/index.php?title=${ptt}&action=history`; } else { for (var ya = revC; ya >= 1; ya--) { if (!(['GiftBot', 'Luke081515Bot'].includes(pageData[ya].user))) { if (pageData[ya].slots.main.content != pageData[ya+1].slots.main.content) { return; } } } var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } } }); } }); } } // Gesperrt -> GB + protect function GB() { if (nameSpace == 3) { var userName = mw.config.get('wgTitle').split('/')[0]; isBlocked(userName).then(function(result) { if (result) { if (pageProtection.indexOf('sysop') == -1) { sendInfo('Infinit gesperrt - Disk aber ungeschützt!\nBitte Button anklicken!'); var GBportLink = mw.util.addPortletLink( 'p-cactions', '#', 'GB + Schutz', 'ca-gb', 'Schütze Disk und setze {{GB}} - Benutzer ist infinit gesperrt.', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=sysop|move=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); api.postWithEditToken({ action: 'edit', title: thisPage, text: '{{GB}}', summary: 'Gesperrter Benutzer' }).then(function(data) { if (data && data.edit && data.edit.result == 'Success') { sendDone('GB erfolgreich'); } else { sendError('GB()', 'erneut versuchen'); } }).catch(function(error) { sendError('GB()', 'erneut versuchen'); }); } ); } } }); } } // Gesperrt -> GB + protect function GBX() { if (nameSpace == 3 & userName == 'TenWhile6') { var userNameX = mw.config.get('wgTitle').split('/')[0]; isBlocked(userNameX).then(function(result) { if (result) { var GBportLink = mw.util.addPortletLink( 'p-search', '#', 'sysop-schutz', 'ca-gb', 'tw6only', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'create=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); } ); } }); } } function filterstuff() { if (nameSpace == -1) { if (window.location.href.includes('/examine/log/')) { var DAportLink = mw.util.addPortletLink( 'p-search', '#', 'Diff ansehen', 'ca-da', 'Versionsunterschied aufrufen', null, '#ca-da' ); $(DAportLink).click(function(e) { e.preventDefault(); hrefX = window.location.href.split('examine/log/'); window.location.href = mw.config.get('wgServer')+'/wiki/Special:AbuseLog/'+hrefX[1]; }); } } } if (DBname == 'dewiki') { GB(); GBX(); botDone(); BNRSLA(); Vdel(); statIP(); LKerl(); LAweg(); ImportartikelImBNR(); } else if (DBname == 'wikidatawiki') { SpamdelWD(); } if (['dewiki', 'wikidatawiki', 'metawiki'].includes(DBname) || (globalSysops.includes(userName) && !(optedOutFromGlobalSysops.includes(DBname)))) { mw.hook('wikipage.content').add(function(obj) { fastblock(obj); }); } filterstuff(); //</nowiki> jhhrqdauxdhwp87h0q67ll6ekvov7fe 665231 665229 2025-07-03T09:39:21Z TenWhile6 51225 665231 javascript text/javascript //<nowiki> Av = 'v1.1'; An = 'AdminHelper'; AdminHelper = `${An} ${Av}`; var api = new mw.Api(); const DBname = mw.config.get('wgDBname'); const thisPage = mw.config.get('wgPageName'); const relevantPage = mw.config.get('wgRelevantPageName'); const userName = mw.config.get('wgUserName'); const nameSpace = mw.config.get('wgNamespaceNumber'); const pageProtection = mw.config.get('wgRestrictionEdit'); const userGroups = mw.config.get('wgUserGroups'); const globalSysops = [ "A09", "Ameisenigel", "Amire80", "Biplab Anand", "BRPever", "CptViraj", "DARIO SEVERI", "Fehufanga", "Baskerville", "Iluvatar_", "Infinite0694", "LR0725", "M7", "MF-W", "Minorax", "Mtarch11", "Praxidicae", "Renvoy", "SHB2000", "Superpes", "Svartava", "SyunSyunMinMin", "Tanbiruzzaman", "Teles", "TenWhile6", "Ternera", "TheresNoTime", "Turkmen", "WhitePhosphorus", "WikiBayer" ]; const optedOutFromGlobalSysops = [ "anwiki", "arwiki", "bgwiki", "bnwiki", "cawiki", "commonswiki", "cswiki", "cswikisource", "cswiktionary", "cywiki", "dawiki", "dewiki", "dewikibooks", "dewikisource", "dewikivoyage", "dewiktionary", "elwiki", "enwiki", "enwikiquote", "enwikisource", "enwiktionary", "eowiki", "eswiki", "etwiki", "euwiki", "fawiki", "fiwiki", "frwiki", "frwikisource", "frwiktionary", "hewiki", "hewikisource", "hrwiki", "huwiki", "idwiki", "iswiki", "itwiki", "jawiki", "kawiki", "kowiki", "loginwiki", "lvwiki", "metawiki", "mkwiki", "mlwiki", "mrwiki", "mswiki", "nlwiki", "nlwiktionary", "nnwiki", "nowiki", "plwiki", "plwikimedia", "plwikisource", "plwiktionary", "ptwiki", "rowiki", "ruwiki", "sewikimedia", "simplewiki", "skwiki", "slwiki", "sourceswiki", "specieswiki", "svwiki", "svwiktionary", "tawiki", "testwiki", "tewiki", "thwiki", "trwiki", "urwiki", "viwiki", "wikidatawiki", "zh_yuewiki", "zhwiki" ]; AHconfig = { 'dewiki': { 'buttonA': 'Vandale [6h]', 'buttonB': 'kWzeM', 'buttonC': 'Vandale [1w]', 'IPb-duration': '6 hours', 'IPb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Tempb-duration': '3 months', 'Tempb-reason': (relevantPage.includes('filter') ? '[[WP:Vd|Unsinnige Bearbeitungen]] <--s. BFL-->' : '[[WP:Vd|Unsinnige Bearbeitungen]]'), 'Userb-duration': 'never', 'Userb-reason': 'Kein Wille zur enzyklopädischen Mitarbeit erkennbar', }, 'wikidatawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '3 days', 'IPb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '3 months', 'Tempb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Wikidata:Vandalism|Vandalism]]-only account [AdminHelper]', }, 'metawiki': { 'buttonA': 'Vandal', 'buttonB': 'Vandal', 'buttonC': 'Vandal', 'IPb-duration': '31 hours', 'IPb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Tempb-duration': '3 months', 'Tempb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism]] [AdminHelper]', 'Userb-duration': 'never', 'Userb-reason': '[[Special:MyLanguage/Meta:Vandalism|Vandalism-only]] account [AdminHelper]', }, GSwikis: { buttonA: 'Vandal', buttonB: 'Vandal', buttonC: 'Vandal', 'IPb-duration': '24 hours', 'IPb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Tempb-duration': '3 months', 'Tempb-reason': 'Vandalism ([[m:GS|global sysop]] action – via AdminHelper)', 'Userb-duration': 'never', 'Userb-reason': 'Vandalism-only account ([[m:GS|global sysop]] action – via AdminHelper)', } }; function configData(varname) { if (DBname in AHconfig) { if (varname in AHconfig[DBname]) { return AHconfig[DBname][varname]; } } else { return AHconfig.GSwikis[varname]; } } // mw.notify configs function sendError(script, message) { mw.notify('Fehler in '+script+':\n\n'+message,{'type':'error','title':AdminHelper}); } function sendDone(message) { mw.notify(message,{'type':'success','title':AdminHelper}); } function sendInfo(message) { mw.notify(message,{'title':AdminHelper}); } // isPageInCategory() => Category checker function isPageInCategory(pageName, categoryName) { var isInCategory = false; return api.get({ action: 'query', prop: 'categories', titles: pageName, clcategories: categoryName, cllimit: 'max' }).then(function(data) { var pages = data.query.pages; for (var pageId in pages) { if (pages.hasOwnProperty(pageId)) { if (pages[pageId].categories && pages[pageId].categories.length > 0) { isInCategory = true; break; } } } return isInCategory; }).catch(function(error) { //sendError('isPageInCategory()', error); return false; }); } // deletePage() => delete function deletePage(pageName, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'delete', title: pageName, reason: reason, format: 'json' } ) .done(function (data) { location.reload(); } ); } else { sendError('deletePage()', 'Keine Berechtigung!'); } } // protectPage() => protect function protectPage(pageName, conf, reason) { if (userGroups.indexOf('sysop') !== -1) { api.postWithToken('csrf', { action: 'protect', title: pageName, protections: conf, expiry: 'infinite', reason: reason, format: 'json' } ) .done(function (data) { if (userName == 'TenWhile6') { window.close(); } else { sendDone('Seite erfolgreich geschützt.'); } } ); } else { sendError('protectPage()', 'Keine Berechtigung!'); } } // isBlocked() => check block status function isBlocked(user) { var api = new mw.Api(); return api.get({ action: 'query', list: 'blocks', bkusers: user }).then(function(data) { if (data.query.blocks && data.query.blocks.length > 0) { var block = data.query.blocks[0]; if (block.expiry == 'infinity' && block.reason != 'Fehlende [[WP:Bezahltes Schreiben|Offenlegung bezahlter Bearbeitungen]] gemäß Ziffer 4 der [[:wmf:Terms of Use/de#4. Unterlassen bestimmter Handlungen|Nutzungsbedingungen]]') { return true; } else { return false; } } else { return false; } }).catch(function(error) { return false; }); } // fastblock => IPs and users function fbr(username, isAnon, isTemp) { api.get({ action: 'query', list: 'users', ususers: username, usprop: 'editcount', format: 'json' }).done(function(data) { if (isAnon) { username = mw.util.isIPv6Address(username) ? username + '/64' : username; } else { var ecount = data.query.users[0].editcount; if (ecount == undefined) { sendError('fastblock()','Name mit Klammerzusatz oder Skriptfehler.'); return; } else if (ecount > 50) { alert('Aus Sicherheitsgründen ist das Sperren von Benutzern mit über 50 Bearbeitungen nicht möglich.'); return; } } api.get({ action: 'query', format: 'json', list: 'logevents', letype: 'block', letitle: `User:${username}`, formatversion: 2 }).then(function(data) { len = data.query.logevents.length; var exp = isAnon ? configData('IPb-duration') : (isTemp ? configData('Tempb-duration') : configData('Userb-duration')); var reas = isAnon ? configData('IPb-reason') : (isTemp ? configData('Tempb-reason') : configData('Userb-reason')); if (len > 0) { alert(`${isAnon ? 'IP-Adresse' : (isTemp ? 'Tempkonto' : 'Benutzer')} hat ${len == 1 ? 'einen Sperrlogeintrag' : len+' Sperrlogeinträge'}.\nLeite daher zu manuellem Sperrdialog weiter (bitte OK klicken).`); window.location.href = `https://de.wikipedia.org/wiki/Spezial:Sperren/${username}`; } else { var confirmed = confirm(`--- SPERRE BESTÄTIGEN ---\nDauer: ${exp}\nbetrifft: ${username}\n${typeof ecount !== undefined ? `Editcount: ${ecount}\n`:''}Sperrlogeinträge: ${len}`); if (confirmed) { api.postWithToken('csrf', { action: 'block', user: username, expiry: exp, reason: reas, nocreate: 'true', autoblock: 'true', anononly: 'true', allowusertalk: 'false' }).then( function () { sendDone(username + ' gesperrt'); }).catch(function(error) { sendError('fastblock()', (error == 'permissiondenied' ? 'Keine Berechtigung!' : (error == 'baduser' ? 'Benutzer existiert nicht' : error))); }); }} }); }); } function fastblock(obj) { if( mw.config.get('wgCanonicalSpecialPageName') == 'Contributions' || mw.config.get('wgCanonicalSpecialPageName') == 'IPContributions' || mw.config.get('wgCanonicalSpecialPageName') == 'DeletedContributions' ) { $(document).ready(function ca_gbLinkContribs() { var show = document.getElementById('contentSub'); if(show) { var target = mw.config.get('wgRelevantUserName'); if (target !== null) { var elemfb = document.createElement('span'); var fb = document.createElement('a'); var isAnon = mw.util.isIPAddress(target); var isTemp = mw.util.isTemporaryUser(target); fb.href = '#block'; fb.innerHTML = isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB')); fb.title = 'Sperre per fastblock()'; fb.addEventListener('click', function() { fbr(target, isAnon, isTemp); }); elemfb.appendChild(fb); document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemfb); } } }); } else { obj.find('span.mw-usertoollinks').each( function( idx, element ) { var isAnon = this.previousElementSibling.className.indexOf( 'mw-anonuserlink' ) >= 0; $( element ).contents().last().before((' | '), $('<a>').attr('href', '#block') .text(isAnon ? configData('buttonA') : (isTemp ? configData('buttonC') : configData('buttonB'))) .click(function() { var username = $(this).parent().get( 0 ).previousElementSibling.textContent; fbr(username, isAnon); })); } ); } } // statIP => Statische IPs function statIP() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Benutzer:Statische IP (ungeschützt)').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Stat-IP-Schutz', 'ca-statprotect', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect' ); $(portletLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); var portletLink2 = mw.util.addPortletLink( 'p-search', '#', 'Stat-IP-Schutz', 'ca-statprotect2', 'Schütze Benutzerseite der statischen IP auf Sichterlevel', null, '#ca-statprotect2' ); $(portletLink2).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=editeditorprotected|move=editeditorprotected', 'Statische IP-Adresse'); } ); } }); } } // LKerl => Löschkandidatenseite eines Tages als erl. markieren function LKerl() { if (thisPage.includes('Wikipedia:Löschkandidaten/')) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; if (pageData.includes('{{Löschkandidatenseite|erl=}}')) { if ((pageData.includes(']==') || pageData.includes('] ==') || pageData.includes('] ==')) == false) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LK erledigt', 'ca-LKerl', 'Seite als erledigt markieren', null, '#ca-LKerl' ); $(portletLink).click(function(e) { e.preventDefault(); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace('{{Löschkandidatenseite|erl=}}', '{{Löschkandidatenseite|erl=--~~~~}}'), summary: 'Löschkandidatenseite als erledigt markiert [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )} } }); } } // LAweg => Entferne LA im ANR function LAweg() { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Löschkandidat').then(function(result) { if (result) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'LA nach Behaltensentscheidung entfernen', 'ca-LAweg', 'Seite als erledigt markieren', null, '#ca-LAweg' ); $(portletLink).click(function(e) { e.preventDefault(); api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData.replace(/<noinclude>.*?<\/noinclude>/gs, '').replace(/^\s*\n/, ''), summary: 'Löschantrag nach Behaltensentscheidung entfernt [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); } )}); } }); } // ImportartikelimBNR => füge {importartikel} hinzu, blende Kats function ImportartikelImBNR() { if (nameSpace == 2 && ['TenWhile6', 'Ameisenigel'].includes(userName) && thisPage.includes('/') && !(thisPage.includes('Benutzer:Versionen')) && !(thisPage.includes('Benutzer:CountCountBot')) && !(thisPage.includes(userName.replace(/ /g, '_')))) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|summary', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions[0].slots.main.content; console.log(data.query.pages[0].revisions[0].user); if (data.query.pages[0].revisions[0].user == userName && !(pageData.includes('{Importartikel}'))) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Importartikel', 'ca-IMP', 'Setze Vorlage und blende Kategorien aus', null, '#ca-IMP' ); $(portletLink).click(function(e) { e.preventDefault(); pageData = '{{Importartikel}}\n'+pageData; pageData = pageData+'-->'; pageData = pageData.replace('\n[[Ca', '\n<!--[[Ca'); pageData = pageData.replace('\n[[Kat', '\n<!--[[Kat'); api.postWithEditToken({ action: 'edit', title: thisPage, text: pageData, summary: 'Importartikel [AdminHelper]', notminor: true, nocreate: true }).done(function() { window.location.reload(); }).fail(function(error) { sendError('Fehler beim Editieren der Seite.' + error); }); }); } } )} } // Vdel => 'Verschieberest'-Löschungen function Vdel() { if ([0, 1, 2, 3, 4].includes(nameSpace)) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '2', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const revs = pageData.length; if (revs == 1) { const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; //const twoHoursInMilliseconds = 7 * 60 * 60 * 1000; var content = pageData[0].slots.main.content; if (!([2,3].includes(nameSpace)) || ([2,3].includes(nameSpace) && thisPage.includes("/"))) { if (content.match(new RegExp('#WEITERLEITUNG','g')) !== null) { content = content.replace('#WEITERLEITUNG [[', ''); content = content.replace(']]', ''); if ([1, 2].includes(nameSpace) | (nameSpace == 0 & content.match(new RegExp('Benutzer(|in):','g')) !== null)) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Verschieberest`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Verschieberest: [[${content}]]`); }); } } } } }); } } // BNR-SLA => Schnelllöschungen 'Wunsch des Benutzers' function BNRSLA() { if (nameSpace == 2) { isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content|user|timestamp', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; const now = new Date(); const givenTime = new Date(pageData[0].timestamp); const timeDifference = now - givenTime; const twoHoursInMilliseconds = 2 * 60 * 60 * 1000; if (timeDifference < twoHoursInMilliseconds) { XrelevantPage = relevantPage.replace(/_/g, ' '); if (XrelevantPage.includes(pageData[0].user)) { if (pageData[0].slots.main.content.match(new RegExp('{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]b|Diese Vorlage wurde zum','g')) !== null) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', `Lösche die Seite mit der Begründung Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`, null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, `Wunsch ${relevantPage.includes('Benutzerin:') ? 'der Benutzerin' : 'des Benutzers'}`); }); } } } }); } }); } } // SpamWD => Schnelllöschungen 'Spam' function SpamdelWD() { if ([1,2,3].includes(nameSpace)) { var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'Spam / advertising', 'ca-spamdelete', `delete the page using the reason Spam / advertising`, null, '#ca-spamdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Spam / advertising'); }); } } // erlBotmeldungen => erledigte Botmarkierungen function botDone() { if (nameSpace == 1) { isPageInCategory(thisPage, 'Category:Wikipedia:Defekte Weblinks/Bot/Keine auffindbaren URL').then(function(result) { if (result) { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '1', rvprop: 'content', rvslots: 'main', formatversion: '2', }).then(function(data) { var pages = data.query.pages[0].revisions[0].slots.main.content; var lines = pages.split('\n'); var okay = true; for (var i = 0; i < lines.length; i++) { if (lines[i] == '') {} else if (lines[i].includes('Defekter Weblink') || lines[i].includes('Defekte Weblinks')) { break; } else { okay = false; } } for (var q = lines.length-1; q >= 0; q--) { //console.log(`lines[${q}] == ${lines[q]}`); if (lines[q] == '') {} else if (['GiftBot', 'MerlLinkBot', 'Zwobot', 'SpBot', 'Luke081515Bot'].includes(lines[q])) { break; } else { okay = false; } } for (var u = 0; u < lines.length; u++) { var line = lines[u]; var count = line.split('==').length - 1; if (count > 1) { if (!(line.includes('Defekter Weblink') || line.includes('Defekte Weblinks'))) { okay = false; } } } if (okay == true) { var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } }); } else { api.get({ action: 'query', titles: thisPage, prop: 'revisions', rvlimit: '5', rvprop: 'content|user', rvslots: 'main', formatversion: '2', }).then(function(data) { var pageData = data.query.pages[0].revisions; var revC = pageData.length-1; var currentContent = pageData[0].slots.main.content; if ((currentContent == '' | isPageInCategory(thisPage, 'Kategorie:Wikipedia:Schnelllöschen')) && revC < 5 && userName == 'TenWhile6') { if (!window.location.href.includes('index.php') && !window.location.href.includes('Spezial')) { const ptt = thisPage.replace(/ /g, '_'); window.location.href = `https://de.wikipedia.org/w/index.php?title=${ptt}&action=history`; } else { for (var ya = revC; ya >= 1; ya--) { if (!(['GiftBot', 'Luke081515Bot'].includes(pageData[ya].user))) { if (pageData[ya].slots.main.content != pageData[ya+1].slots.main.content) { return; } } } var portletLink = mw.util.addPortletLink( 'p-search', '#', 'Löschen', 'ca-bdelete', 'Lösche die Seite mit der Begründung \'Ausschließlich erledigte Bothinweise\'', null, '#ca-bdelete' ); $(portletLink).click(function(e) { e.preventDefault(); deletePage(thisPage, 'Ausschließlich erledigte Bothinweise'); }); } } }); } }); } } // Gesperrt -> GB + protect function GB() { if (nameSpace == 3) { var userName = mw.config.get('wgTitle').split('/')[0]; isBlocked(userName).then(function(result) { if (result) { if (pageProtection.indexOf('sysop') == -1) { sendInfo('Infinit gesperrt - Disk aber ungeschützt!\nBitte Button anklicken!'); var GBportLink = mw.util.addPortletLink( 'p-cactions', '#', 'GB + Schutz', 'ca-gb', 'Schütze Disk und setze {{GB}} - Benutzer ist infinit gesperrt.', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'edit=sysop|move=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); api.postWithEditToken({ action: 'edit', title: thisPage, text: '{{GB}}', summary: 'Gesperrter Benutzer' }).then(function(data) { if (data && data.edit && data.edit.result == 'Success') { sendDone('GB erfolgreich'); } else { sendError('GB()', 'erneut versuchen'); } }).catch(function(error) { sendError('GB()', 'erneut versuchen'); }); } ); } } }); } } // Gesperrt -> GB + protect function GBX() { if (nameSpace == 3 & userName == 'TenWhile6') { var userNameX = mw.config.get('wgTitle').split('/')[0]; isBlocked(userNameX).then(function(result) { if (result) { var GBportLink = mw.util.addPortletLink( 'p-search', '#', 'sysop-schutz', 'ca-gb', 'tw6only', null, '#ca-gb' ); $(GBportLink).click(function(e) { e.preventDefault(); protectPage(thisPage, 'create=sysop', 'Diskussionsseite eines unbeschränkt [[WP:BS|gesperrten Benutzers]]'); } ); } }); } } function filterstuff() { if (nameSpace == -1) { if (window.location.href.includes('/examine/log/')) { var DAportLink = mw.util.addPortletLink( 'p-search', '#', 'Diff ansehen', 'ca-da', 'Versionsunterschied aufrufen', null, '#ca-da' ); $(DAportLink).click(function(e) { e.preventDefault(); hrefX = window.location.href.split('examine/log/'); window.location.href = mw.config.get('wgServer')+'/wiki/Special:AbuseLog/'+hrefX[1]; }); } } } if (DBname == 'dewiki') { GB(); GBX(); botDone(); BNRSLA(); Vdel(); statIP(); LKerl(); LAweg(); ImportartikelImBNR(); } else if (DBname == 'wikidatawiki') { SpamdelWD(); } if (['dewiki', 'wikidatawiki', 'metawiki'].includes(DBname) || (globalSysops.includes(userName) && !(optedOutFromGlobalSysops.includes(DBname)))) { mw.hook('wikipage.content').add(function(obj) { fastblock(obj); }); } filterstuff(); //</nowiki> 2al18sozg7392qpp14adusa6dh0x84k MediaWiki:GrowthExperimentsCommunityUpdates.json 8 158516 665232 653536 2025-07-03T10:02:15Z Martin Urbanec (WMF) 43912 665232 json application/json { "$version": "2.0.3", "GEHomepageCommunityUpdatesCallToAction": { "pageTitle": "Special:AllPages", "buttonText": "Go to the main page" }, "GEHomepageCommunityUpdatesContentBody": "freestar Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "GEHomepageCommunityUpdatesContentTitle": "meta:Women in Red", "GEHomepageCommunityUpdatesEnabled": true, "GEHomepageCommunityUpdatesMinEdits": 0, "GEHomepageCommunityUpdatesThumbnailAddDarkModeBackground": false, "GEHomepageCommunityUpdatesThumbnailFile": { "title": "File:Wikimedia logo text RGB.svg", "url": "https://upload.wikimedia.org/wikipedia/commons/1/12/Wikimedia_logo_text_RGB.svg" } } tkugva12s5ubejgfzzrb8t5nfo7klm1 665233 665232 2025-07-03T10:02:32Z Martin Urbanec (WMF) 43912 665233 json application/json { "$version": "2.0.3", "GEHomepageCommunityUpdatesCallToAction": { "pageTitle": "meta:Special:AllPages", "buttonText": "Go to the main page" }, "GEHomepageCommunityUpdatesContentBody": "freestar Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "GEHomepageCommunityUpdatesContentTitle": "Women in Red", "GEHomepageCommunityUpdatesEnabled": true, "GEHomepageCommunityUpdatesMinEdits": 0, "GEHomepageCommunityUpdatesThumbnailAddDarkModeBackground": false, "GEHomepageCommunityUpdatesThumbnailFile": { "title": "File:Wikimedia logo text RGB.svg", "url": "https://upload.wikimedia.org/wikipedia/commons/1/12/Wikimedia_logo_text_RGB.svg" } } 4spf0v6otbochfw2s4oxl4uex0d025u Wikipedia:Requests/Tools/syl 4 162988 665215 663092 2025-07-03T03:41:37Z FuzzyBot 18251 Updating to match new version of source page 665215 wikitext text/x-wiki <languages/> {{requests}} <span lang="en" dir="ltr" class="mw-content-ltr">This page lists sites for users to test administrative tools and the [[mw:|MediaWiki]] software in general. However, each site will have its own rules for testing admin-ship.</span> <hr width="86%"/> {|class="plainlinks wikitable" style="text-align: center;" !ꠘꠣꠝ !<span lang="en" dir="ltr" class="mw-content-ltr">MediaWiki version</span> !<span lang="en" dir="ltr" class="mw-content-ltr">IRC channel/Discord server</span> !<span lang="en" dir="ltr" class="mw-content-ltr">CheckUser</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Privacy policy</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Bug Tracker/Requests site</span> !<span lang="en" dir="ltr" class="mw-content-ltr">VisualEditor</span> |- | [https://publictestwiki.com/ <span lang="en" dir="ltr" class="mw-content-ltr">'''Public Test Wiki''' (Miraheze)</span>] | bgcolor="yellow" | 1.43.1<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Public Test Wiki's version page</span>]</ref><br>(legacy) |bgcolor="#3E7" | [ircs://chat.freenode.net/miraheze-testwiki #miraheze-testwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on Libera</span> | bgcolor="yellow" | <span lang="en" dir="ltr" class="mw-content-ltr">Restricted</span> | bgcolor="#3E7" | [https://publictestwiki.com/wiki/TestWiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span>] | bgcolor="#3E7" | [https://issue-tracker.miraheze.org/ Miraheze Phorge] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes</span> |- | [https://testwiki.wiki/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki</span>'''] | bgcolor="#3E7" |1.44.0<ref>[https://testwiki.wiki/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Test Wiki's version page</span>]</ref><br>(latest) | bgcolor="#3E7" | [irc://chat.freenode.net/testadminwiki #testadminwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on Libera<br>[https://discord.gg/yBUvasVmt4 Test Wiki] on Discord</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://testwiki.wiki/wiki/Test_Wiki:Privacy_policy ꠅꠄ] | bgcolor="#3E7" | [https://phabricator.testwiki.wiki/ Test Wiki Phabricator] | bgcolor="#3E7" | ꠅꠄ |- | [https://www.thetestwiki.org/ '''<span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki (currently broken)</span>'''] | bgcolor="yellow" | 1.43.0<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">The Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [irc://chat.freenode.net/thetestwiki #thetestwiki] <span lang="en" dir="ltr" class="mw-content-ltr">on freenode</span> | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">Yes (only for self)</span> | bgcolor="#3E7" | [https://www.thetestwiki.org/wiki/The_Test_Wiki:Privacy_policy <span lang="en" dir="ltr" class="mw-content-ltr">Yes, for non-vandals</span>] | bgcolor="#3E7" | <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:User talk:Skizzerz|'''Skizzerz’s talk page'''<br>(MediaWiki)]]</span> | bgcolor="red" | <span lang="en" dir="ltr" class="mw-content-ltr">No</span> |- | [http://testmw.fandom.com/ '''<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki</span>'''] | bgcolor="yellow" | 1.43.0<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <span lang="en" dir="ltr" class="mw-content-ltr">Fandom Test Wiki's version page</span>]</ref><br>(legacy) | bgcolor="#3E7" | [https://discord.com/invite/fandom Fandom] on Discord | bgcolor="yellow" | <span lang="en" dir="ltr" class="mw-content-ltr">Restricted</span> | bgcolor="#3E7" | [http://www.fandom.com/privacy-policy ꠅꠄ] | bgcolor="#3E7" | [[centralwikia:Special:Contact/bug|<span lang="en" dir="ltr" class="mw-content-ltr">Fandom Support - Bug Report</span>]] | bgcolor="#3E7" | ꠅꠄ |} <span id="Notes"></span> ==ꠘꠥꠐꠣꠁꠘ== <references /> k043dgdl3i5h6htcmtdsr6o0l8psknt User talk:A smart kitten/sandbox/dt-search-bug 3 165848 665178 656121 2025-07-02T13:57:48Z A smart kitten 58826 /* /search */ Reply 665178 wikitext text/x-wiki == /search == does this do anything &mdash;&#8288;[[user:a smart kitten|a&nbsp;smart kitten]]&nbsp;([[mw:user:a smart kitten|mw]]&nbsp;//&nbsp;[[phab:p/a_smart_kitten|phab]]&nbsp;//&nbsp;[[user talk:a smart kitten|talk]]) 09:20, 2 May 2025 (UTC) :[[#/search]] &mdash;&#8288;[[user:a smart kitten|a&nbsp;smart kitten]]&nbsp;([[mw:user:a smart kitten|mw]]&nbsp;//&nbsp;[[phab:p/a_smart_kitten|phab]]&nbsp;//&nbsp;[[user talk:a smart kitten|talk]]) 13:57, 2 July 2025 (UTC) mz5h1mkqhw70ciik4nmpd3ccjv3o8a7 665179 665178 2025-07-02T14:00:14Z A smart kitten 58826 undo: try without that again 665179 wikitext text/x-wiki == /search == does this do anything &mdash;&#8288;[[user:a smart kitten|a&nbsp;smart kitten]]&nbsp;([[mw:user:a smart kitten|mw]]&nbsp;//&nbsp;[[phab:p/a_smart_kitten|phab]]&nbsp;//&nbsp;[[user talk:a smart kitten|talk]]) 09:20, 2 May 2025 (UTC) 53h0s567yql557xgattin42n3eqachu 665182 665179 2025-07-02T14:54:22Z A smart kitten 58826 /* test test /search test test */ new section 665182 wikitext text/x-wiki == /search == does this do anything &mdash;&#8288;[[user:a smart kitten|a&nbsp;smart kitten]]&nbsp;([[mw:user:a smart kitten|mw]]&nbsp;//&nbsp;[[phab:p/a_smart_kitten|phab]]&nbsp;//&nbsp;[[user talk:a smart kitten|talk]]) 09:20, 2 May 2025 (UTC) == test test /search test test == another test case &mdash;&#8288;[[user:a smart kitten|a&nbsp;smart kitten]]&nbsp;([[mw:user:a smart kitten|mw]]&nbsp;//&nbsp;[[phab:p/a_smart_kitten|phab]]&nbsp;//&nbsp;[[user talk:a smart kitten|talk]]) 14:54, 2 July 2025 (UTC) oqo3yids91ztl5zqm6tkdp86zq1bnqx User:TenWhile6/X.js 2 166680 665226 664858 2025-07-03T07:16:25Z TenWhile6 51225 665226 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); Server = mw.config.get('wgServer'); namespace = mw.config.get('wgNamespaceNumber'); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Stelle Schnelllöschantrag...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "o-reason": "Begründung / weitere Links (optional)", "addusers": "Ergänze weitere Benutzer", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-url": "Du musst eine URL angeben!", "error-local": "Auf diesem Wiki sind lokale Meldungen derzeit nicht freigeschaltet.", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "success-sent": "Meldung erfolgreich versandt", "success-sent-copy": "Mail-Kopie an dich versandt", "success-SD": "Schnelllöschantrag gestellt", "local-OS": "Lokale Oversighter", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Zahtevaj hitri izbris na Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalcem" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" }, "uk": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Відправити запит", "process": "запит відправляється...", "local-button": "Локальний запит", "global-button": "Відправити глобальний запит", "type": "Тип запиту", "title": "Відправити запит на користувача", "description": "Повідомити про користувача на сторінці запитів до адміністраторів", "Ptitle": "Відправити запит на сторінку", "Pdescription": "Запросити захист сторінки", "SDtitle": "Швидке вилучення", "SDdescription": "Запросити швидке вилучення цієї сторінки", "SDgsr": "Запит на швидке вилучення на сторінці Global sysops/Requests", "SDprocess": "Запит на швидке вилучення...", "reason": "Причина", "c-reason": "Власне обґрунтування", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Необхідно вказати причину!", "error-page": "Необхідно вказати сторінку!", "error-user": "You must give a user!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Запит вже існує.", "error-SDrequested": "Запит на швидке вилучення вже надіслано.", "error-api": "Під час надсилання запиту «$1» виникла помилка.", "error-activated": "$1 не активовано на цій вікі.", "error-specialpage": "Неможливо надіслати запит про службову сторінку.", "success": "Запит виконано", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Закрити", "username": "Користувач", "hide-username": "Приховати ім'я користувача", "pagename": "Сторінка", "OSR-choose": "Оберіть причину приховання", "OSR-button": "Запит ревізорам", "OSR-description": "Написати електронний лист ревізорам" } }; lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } XReport = { version: 'v3.0a', name: 'XReport', documentation: {framed: false,icon: 'articles', label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')}, feedback: {framed: false,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport')}, feedbackP2: {framed: false,disabled:true,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport')}, settings: {framed: false,icon: 'settings',label: trnslt('settings'),disabled:true}/*.on("click", function() {self.switchTo('settings')})*/, link: '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]', signature: ' --~~~~', mwh: '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>', translateUI: 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!', monthsFr: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], monthsDe: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], OSRequester: { requesterusername: mw.config.get('wgUserName') == 'TenWhile6' ? 'Ten' : mw.config.get('wgUserName'), documentation: {framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/OSRequester' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/OSRequester')}, feedback: {framed: false,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/OSRequester' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/OSRequester')}, feedbackP2: {framed: false,disabled:true,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/OSRequester' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/OSRequester')}, } }; XReport.title = `${XReport.name} ${XReport.version}`, XReport.linkS = `<small>${XReport.link}</small>`; XReport.linkK = `(${XReport.link} ${XReport.version})`; XReport.OSRequester.name = `OSRequester (via ${XReport.title})`; XReport.OSRequester.ccme = XReport.OSRequester.requesterusername == 'Ten' ? false : true; XReport.OSRequester.data = { 'stewards': 'Wikimedia_Stewards_(Oversight)', 'metawiki': 'Meta-Wiki_oversighters', 'dewiki': 'Oversight-Email', 'enwiki': 'Oversight', 'bnwiki': 'গোপনকারী', 'zhwiki': 'Oversight-zhwp', 'fiwiki': 'H%C3%A4ivytyspyynn%C3%B6t', 'frwiki': 'Masqueurs', 'itwiki': 'Soppressori', 'jawiki': 'Oversight-JAWP', 'kowiki': '기록보호자', 'eswiki': 'Supervisor~eswiki', 'ptwiki': 'Supressor', 'simplewiki': 'Oversight~simplewiki', 'wikidatawiki': 'Wikidata Oversight', 'bewiki': 'Wizardist', /* one of the two oversighters, because the other one is basically inactive */ 'idwiki': 'Pengawas WBI', 'fawiki': false, 'plwiki': 'wikipedia-pl-oversighters@lists.wikimedia.org', 'ruwiki': 'wikipedia-ru-oversighters@lists.wikimedia.org', 'trwiki': 'gozetmen@lists.wikimedia.org', 'commonswiki': 'Oversight Commons' }; function OSDBdata() { DBx = DB in XReport.OSRequester.data ? DB : 'stewards'; if (XReport.OSRequester.data[DBx]) { return XReport.OSRequester.data[DBx]; } else { mw.notify(`Error: OSDBdata() at ${DBx} status ${status} in ${key}`,{'type':'error','title':XReport.OSRequester.name}); } } pSummary = 'Reporting: Page [[$1]] '+XReport.linkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XReport.linkK; dSummary = 'Requesting deletion ' + XReport.linkK; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-personal' : 'p-navigation'; clocation = 'p-cactions'; api = new mw.Api({userAgent: `${XReport.name}/${XReport.version}`}); metaapi = DB == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${XReport.name}/${XReport.version}`}); today = new Date(); curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); constRelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; var Svx = Server.replace(/^(https?)?:?\/\//, '').split('.'); var iwPrefix = Svx[1] == 'mediawiki' ? 'mw' : (Svx[1] == 'wiktionary' ? 'wikt:' + Svx[0] : (Svx[1] == 'wikiquote' ? 'q:' + Svx[0] : (Svx[1] == 'wikinews' ? 'n:' + Svx[0] : (Svx[1] == 'wikibooks' ? 'b:' + Svx[0]: (Svx[1] == 'wikisource' ? 's:' + Svx[0]: (Svx[1] == 'wikivoyage' ? 'voy:' + Svx[0] : (Svx[1] == 'wikifunctions' ? 'f:' : null))))))); if (Svx[1] == 'wikidata') { iwPrefix = Svx[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Svx[0] == 'www' ? 'd' : iwPrefix; } else if (Svx[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Svx[0]) ? Svx[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Svx[0] : iwPrefix; } else if (Svx[1] == 'wikiversity') { iwPrefix = Svx[0] == 'beta' ? Svx[0] + Svx[1] : 'v:' + Svx[0]; } else if (Svx[1] == 'wikimedia') { iwPrefix = Svx[0].length <= 3 ? 'wm'+Svx[0] : Svx[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport.title,autoHide:false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager, OSRdialog, OSRwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XReport.linkS+XReport.signature, 'summary': 'Reporting user '+XReport.linkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XReport.linkS+XReport.signature, 'summary': 'Reporting user '+XReport.linkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XReport.linkS+XReport.signature } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XReport.linkS+XReport.signature, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XReport.linkS+XReport.signature } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XReport.linkS+XReport.signature },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XReport.linkS+XReport.signature+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XReport.linkS+XReport.signature }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XReport.linkS+XReport.signature, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XReport.linkS+XReport.signature+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XReport.linkS+XReport.signature+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+XReport.version+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+XReport.signature, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+XReport.version+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+XReport.signature, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+XReport.version+')' }, 'RD': { 'page': `${today.getDay()}. ${XReport.monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+XReport.version+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XReport.linkS+XReport.signature }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XReport.linkS+XReport.signature }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XReport.linkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XReport.linkS+XReport.signature, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XReport.link+']</small> Message déposé par'+XReport.signature, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${XReport.monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XReport.linkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XReport.linkS+XReport.signature }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XReport.linkS+XReport.signature, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XReport.linkS+XReport.signature, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XReport.linkS+XReport.signature, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XReport.linkS+XReport.signature }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XReport.linkS+XReport.signature }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XReport.linkS+XReport.signature, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XReport.linkS+XReport.signature /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XReport.linkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XReport.linkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XReport.linkS+XReport.signature, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XReport.linkS+XReport.signature, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'Wikipedia:Village pump', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1', 'P': { 'page': 'Wikipedia:Village pump', 'regex': '==\\s*Page \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Report: Page [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+XReport.version+')', 'rtext': '== Page [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+XReport.signature, 'sectionname': 'Page $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XReport.linkS+XReport.signature, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XReport.linkS+XReport.signature, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', 'section': '0', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', 'section': '0' }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XReport.linkS+XReport.signature, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XReport.linkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XReport.linkS+XReport.signature, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XReport.linkS+'\n* 发现人:'+XReport.signature, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport.title; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': trnslt('error-local')}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(XReport.translateUI)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: trnslt('addusers'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: trnslt('o-reason'), /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : Server)}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XReport.linkS+XReport.signature; uSummary = 'Reporting multiple users '+XReport.linkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XReport.linkS} ${signature}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'], icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget(XReport.documentation), new OO.ui.ButtonWidget(XReport.feedback), /*new OO.ui.ButtonWidget({XReport.settings}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget(XReport.feedbackP2); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(XReport.mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport.title; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(XReport.translateUI)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${Server}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'], icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget(XReport.documentation), new OO.ui.ButtonWidget(XReport.feedback), /*new OO.ui.ButtonWidget({XReport.settings}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget(XReport.feedbackP2); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(XReport.mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport.title; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(XReport.translateUI)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder:trnslt('o-reason'), autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success-SD'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + XReport.signature : XReport.link}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'], icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget(XReport.documentation), new OO.ui.ButtonWidget(XReport.feedback), /*new OO.ui.ButtonWidget({XReport.settings}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget(XReport.feedbackP2); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(XReport.mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* request oversight */ function getOSRDialog(){ function CreateOSRDialog(config){ CreateOSRDialog.parent.call(this, config); } OO.inheritClass(CreateOSRDialog, OO.ui.ProcessDialog); CreateOSRDialog.static.name = 'CreateOSRDialog'; CreateOSRDialog.static.title = XReport.OSRequester.name; CreateOSRDialog.prototype.initialize = function() { var self = this; CreateOSRDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; noOSinfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet('x')}); if (DB in XReport.OSRequester.data) { if (XReport.OSRequester.data[DB].includes('@')) { noOSinfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(`Sending a Wikimail is <u>not possible</u> on this wiki.<br>Please send a mail to <a href="mailto:${XReport.OSRequester.data[DB]}?subject=Oversight request&body=URL: ${window.location} – Best regards, ${XReport.OSRequester.requesterusername}">${XReport.OSRequester.data[DB]}</a>.`)}); } } languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(XReport.translateUI)}); var usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); usernameInputField = new OO.ui.FieldLayout(usernameInput,{label: trnslt('username')}); var urlInput = new OO.ui.MultilineTextInputWidget({align: 'top', required: true, value:window.location, rows: 3, autosize: true}); urlInputField = new OO.ui.FieldLayout(urlInput,{label: 'URL'}); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: trnslt('o-reason'), /*required: true,*/ disabled:true, rows: 3, autosize: true}); reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var dropDown = new OO.ui.DropdownWidget( { label: trnslt('OSR-choose'), menu: { items: [ new OO.ui.MenuOptionWidget( { data: 'OS#1', label: DB == 'dewiki' & lang == 'de' ? 'OS#1: Nicht-öffentliche persönliche Informationen' : 'OS#1: Non-public personal information', } ), new OO.ui.MenuOptionWidget( { data: 'OS#2', label: DB == 'dewiki' & lang == 'de' ? 'OS#2: potenziell verleumderische Informationen': 'OS#2: Potentially libelous information', } ), new OO.ui.MenuOptionWidget( { data: 'OS#4', label: DB == 'dewiki' & lang == 'de' ? 'OS#4: Benutzername, der einen schwerwiegenden Angriff darstellt' : 'OS#4: Blatant attack username', } ), ] } } ), itemSelected = function(){ if (dropDown.getMenu().getVisibleItems()[0].selected) {usernameInputField.toggle(false);urlInputField.toggle(true);} else if (dropDown.getMenu().getVisibleItems()[1].selected) {usernameInputField.toggle(false);urlInputField.toggle(true);} else if (dropDown.getMenu().getVisibleItems()[2].selected) {usernameInputField.toggle(true);urlInputField.toggle(false);} reasonInput.setDisabled(false); mainButton.setDisabled(false); self.updateSize(); }; dropDown.getMenu().on('select', itemSelected); mainbuttonfunction = function() { var URL = urlInput.getValue(); urlInputField.setErrors([]); usernameInputField.setErrors([]); if (dropDown.getMenu().getVisibleItems()[0].selected) { OS = dropDown.getMenu().getVisibleItems()[0].data; OSText = dropDown.getMenu().getVisibleItems()[0].label; if (!URL){ urlInputField.setErrors([trnslt('error-url')]); self.updateSize(); return; } } else if (dropDown.getMenu().getVisibleItems()[1].selected) { OS = dropDown.getMenu().getVisibleItems()[1].data; OSText = dropDown.getMenu().getVisibleItems()[1].label; if (!URL){ urlInputField.setErrors([trnslt('error-url')]); self.updateSize(); return; } } else if (dropDown.getMenu().getVisibleItems()[2].selected) { OS = dropDown.getMenu().getVisibleItems()[2].data; OSText = dropDown.getMenu().getVisibleItems()[2].label; var username = usernameInput.getValue(); if (!username){ usernameInputField.setErrors([trnslt('error-user')]); self.updateSize(); return; } else { URL = 'https:'+Server+'/wiki/Special:Contributions/' + username.replace(/ /g, '_'); } } var reason = reasonInput.getValue(); reason = reason.replace( /(.*)--~~~~/g, '$1'); reason = reason.replace( /(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { self.updateSize(); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success-sent')+' → '+(DB in XReport.OSRequester.data ? trnslt('local-OS') : 'Stewards')+(XReport.OSRequester.ccme ? `<br>+ ${trnslt('success-sent-copy')}`: ''))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); self.updateSize(); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; xapi = DB in XReport.OSRequester.data ? api : metaapi; xapi.postWithEditToken({ action: 'emailuser', target: OSDBdata(), subject: OS, text: 'Oversight-Request per '+OSText+'.\n'+URL+(reason != '' ? '\n'+reason+'\n\n' : '\n\n')+(DB == 'dewiki' ? 'Freundliche Grüße' : 'Best regards')+'\n'+XReport.OSRequester.requesterusername, format: 'json', ccme: XReport.OSRequester.ccme, }).then(function(data){ if (data.error && data.error.info){ mw.notify(`Error: OSRequester at ${DB}, action: postWithEditToken`,{'type':'error','title':XReport.OSRequester.name,autoHide: false}); } else { success(); } }); self.updateSize(); }; mainButton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'], icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on( 'click', function() { self.close(); }), mainButton, ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget(XReport.OSRequester.documentation), new OO.ui.ButtonWidget(XReport.OSRequester.feedback), /*new OO.ui.ButtonWidget({XReport.settings}),*/ ] }), dropDown, usernameInputField, urlInputField, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]})), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on( 'click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget(XReport.OSRequester.feedbackP2); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); page3Form = new OO.ui.FieldsetLayout({ items: [new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget(XReport.OSRequester.documentation), new OO.ui.ButtonWidget(XReport.OSRequester.feedback), /*new OO.ui.ButtonWidget({XReport.settings}),*/ ] }),noOSinfo,new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on( 'click', function() { self.close() })] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(XReport.mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), $('<div />',{id: 'page-3', style: 'display:none'}).append(page3Form.$element) ); this.$body.append(this.panelLayout.$element); }; CreateOSRDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateOSRDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateOSRDialog({ size: 'medium' }); } function openOSRDialog(){ if (!OSRdialog){ OSRdialog = getOSRDialog(); OSRwindowManager = new OO.ui.WindowManager(); $('body').append(OSRwindowManager.$element); OSRwindowManager.addWindows([OSRdialog]); usernameInputField.toggle(false); urlInputField.toggle(false); mainButton.setDisabled(true); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in XReport.OSRequester.data) { if (XReport.OSRequester.data[DB].includes('@')) { OSRdialog.switchTo('page-3'); } } } OSRwindowManager.openWindow(OSRdialog); } /* portlet links */ if (typeof XReportConfig !== 'undefined') { if (XReportConfig == true) { $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); $(mw.util.addPortletLink(clocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); $(mw.util.addPortletLink(clocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); $(mw.util.addPortletLink(clocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } XReportConfig = true; } } if (typeof OSRequesterConfig !== 'undefined') { if (OSRequesterConfig == true) { if (DB in XReport.OSRequester.data) { if (XReport.OSRequester.data[DB] == false) { nope = true; } } if (typeof nope == 'undefined') { $(mw.util.addPortletLink(blocation,'#',trnslt('OSR-button'),'ca-osrequester',trnslt('OSR-description'),null,'#ca-osrequester')).click(function(e) { e.preventDefault(); openOSRDialog(); }); $(mw.util.addPortletLink(clocation,'#',trnslt('OSR-button'),'ca-osrequester',trnslt('OSR-description'),null,'#ca-osrequester')).click(function(e) { e.preventDefault(); openOSRDialog(); }); } OSRequesterConfig = true; } } /*</nowiki>*/ pz5g6j1qr2nv46b3kkfm4uh74dhwncs 665230 665226 2025-07-03T07:25:25Z TenWhile6 51225 Undo revision [[Special:Diff/665226|665226]] by [[Special:Contributions/TenWhile6|TenWhile6]] ([[User talk:TenWhile6|talk]]) 665230 javascript text/javascript /*<nowiki>*/ DB = mw.config.get('wgDBname'); Server = mw.config.get('wgServer'); namespace = mw.config.get('wgNamespaceNumber'); LangData = { "en": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Report", "process": "Reporting...", "local-button": "Local report", "global-button": "Global report", "type": "Report type", "title": "Report user", "description": "Report the user to Administrators\" noticeboard", "Ptitle": "Report page", "Pdescription": "Request page protection", "SDtitle": "Speedy deletion", "SDdescription": "Request speedy deletion of this page", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Requesting speedy deletion...", "reason": "Reason", "c-reason": "Custom reason", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "You must give a reason!", "error-page": "You must give a page!", "error-user": "You must give a user!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Already reported.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "An error occurred while reporting $1.", "error-activated": "$1 is not activated on this wiki.", "error-specialpage": "Special pages can't be reported.", "success": "Request successful", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Close", "username": "User name", "hide-username": "Hide user name", "pagename": "Page name", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "de": { "doc": "Dokumentation", "help": "Hilfe", "settings": "Einstellungen", "feedback": "Feedback", "button": "Melden", "process": "Melde...", "local-button": "Lokal melden", "global-button": "Global melden", "type": "Meldungstyp", "title": "Benutzer melden", "description": "Benutzersperre beantragen", "Ptitle": "Seite melden", "Pdescription": "Seitenschutz beantragen", "SDtitle": "Schnelllöschantrag", "SDdescription": "Beantrage die Schnelllöschung dieser Seite", "SDgsr": "Beantrage Schnelllöschung auf Global sysops/Requests", "SDprocess": "Stelle Schnelllöschantrag...", "reason": "Begründung", "c-reason": "Manuelle Begründung", "o-reason": "Begründung / weitere Links (optional)", "addusers": "Ergänze weitere Benutzer", "error-reason": "Du musst eine Begründung angeben!", "error-page": "Du musst eine Seite angeben!", "error-user": "Du musst einen Benutzer angeben!", "error-url": "Du musst eine URL angeben!", "error-local": "Auf diesem Wiki sind lokale Meldungen derzeit nicht freigeschaltet.", "error-requested": "Wurde bereits gemeldet.", "error-SDrequested": "Schnellöschung wurde bereits beantragt.", "error-api": "Beim Melden von $1 ist ein Fehler aufgetreten.", "error-activated": "$1 ist auf diesem Wiki nicht aktiviert.", "error-specialpage": "Spezialseiten können nicht gemeldet werden.", "success": "Meldung erfolgreich", "success-sent": "Meldung erfolgreich versandt", "success-sent-copy": "Mail-Kopie an dich versandt", "success-SD": "Schnelllöschantrag gestellt", "local-OS": "Lokale Oversighter", "close": "Schließen", "username": "Benutzer", "hide-username": "Benutzername verstecken", "pagename": "Seite", "OSR-choose": "Wähle einen Oversight-Grund aus", "OSR-button": "Beantrage Oversight", "OSR-description": "Sende eine E-Mail an die Oversighter" }, "es": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reportar aquí", "global-button": "Reportar globalmente", "type": "Tipo del reporte", "title": "Reportar usuario", "description": "Reportar usuario al tablón de anuncios de los bibliotecarios", "Ptitle": "Reportar página", "Pdescription": "Solicitar protección de página", "SDtitle": "Borrado rápido", "SDdescription": "Solicitar borrado rápido de este página", "SDgsr": "Solicitar borrado rápido en Global sysops/Requests", "SDprocess": "Solicitado borrado rápido...", "reason": "Razón", "c-reason": "Razón manual", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-page": "¡Debes incluir una página!", "error-user": "¡Debes incluir un usuario!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-reason": "¡Debes incluir una razón!", "error-requested": "Ya reportado.", "error-SDrequested": "Borrado rápido ya solictado.", "error-api": "Se produjo un error al informar $1.", "error-activated": "$1 no está activado en este wiki.", "error-specialpage": "Páginas especiales no pueden ser reportadas.", "success": "Solicitud exitosa", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Cerrar", "username": "Nombre de usuario", "hide-username": "Ocultar nombre de usuario", "pagename": "Nombre de la página", "OSR-choose": "Elige un razón de supresión", "OSR-button": "Solicitar supresión", "OSR-description": "Enviar un correo electrónico a supresores" }, "fr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Signaler", "process": "Demande de blocage en cours...", "local-button": "Blocage local", "global-button": "Blocage global", "type": "Type de blocage demandé", "title": "Signaler l'utilisateur", "description": "Demander le blocage de cet utilisateur aux administrateurs", "Ptitle": "Demander la protection", "Pdescription": "Demander la protection de cette page aux administrateurs", "SDtitle": "Demander la suppression", "SDdescription": "Demander la suppression immédiate de cette page aux administrateurs", "SDgsr": "Demander la suppression immédiate de cette page aux administrateurs globaux", "SDprocess": "Demande de suppression immédiate en cours...", "reason": "Raison", "c-reason": "Motif personnalisé", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Vous devez saisir une raison !", "error-page": "Vous devez saisir le titre de la page !", "error-user": "Vous devez saisir le nom de l'utilisateur !", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "L'utilisateur a déjà été signalé.", "error-SDrequested": "La suppression immédiate a déjà été demandée.", "error-api": "Une erreur est survenue pendant le signalement de $1.", "error-activated": "$1 n'est pas activé sur ce wiki.", "error-specialpage": "Les pages spéciales ne peuvent pas être signalées.", "success": "Demande effectuée", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Fermer", "username": "Nom de l'utilisateur", "hide-username": "Cacher le nom de l'utilisateur", "pagename": "Titre de la page", "OSR-choose": "Raison du masquage", "OSR-button": "Demander le masquage", "OSR-description": "Envoyer un email aux masqueurs de modifications" }, "it": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Segnala", "process": "Segnalazione in corso...", "local-button": "Segnala localmente", "global-button": "Segnala globalmente", "type": "Tipo di segnalazione", "title": "Segnala l'utente", "description": "Segnala l'utente sulla bacheca degli amministratori", "Ptitle": "Segnala pagina", "Pdescription": "Richiedi protezione della pagina", "SDtitle": "Cancellazione immediata", "SDdescription": "Richiedi la cancellazione immediata di questa pagina", "SDgsr": "Richiedi la cancellazione immediata su Global sysops/Requests", "SDprocess": "Richiesta cancellazione immediata...", "reason": "Motivazione", "c-reason": "Altra motivazione", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-page": "Devi indicare una pagina!", "error-user": "Devi indicare un utente!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-reason": "È obbligatorio inserire una motivazione!", "error-requested": "Già segnalato.", "error-SDrequested": "Cancellazione immediata già richiesta.", "error-api": "Si è verificato un errore nella segnalazione di $1.", "error-activated": "$1 non è attivato su questa wiki.", "error-specialpage": "Le pagine speciali non possono essere segnalate.", "success": "Richiesta inviata", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Chiudi", "username": "Nome utente", "hide-username": "Nascondi il nome utente", "pagename": "Nome della pagina", "OSR-choose": "Scegli una motivazione per la soppressione", "OSR-button": "Richiedi la soppressione", "OSR-description": "Invia una mail ai soppressori" }, "ur": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "شکایت", "process": "شکایت کی جارہی ہے", "local-button": "مقامی شکایت", "global-button": "عالمی شکایت", "type": "شکایت کی قسم", "title": "صارف کی شکایت کریں", "description": "دیوان خاص میں صارف کی شکایت کریں", "Ptitle": "شکایت برائے صفحہ", "Pdescription": "محفوظ شدگی برائے صفحہ کی درخواست", "SDtitle": "فوری حذف شدگی", "SDdescription": "اس صفحہ کی فوری حذف شدگی کی درخواست دیں", "SDgsr": "جی ایس آر پر فوری حذف شدگی کی درخوسواست دیں", "SDprocess": "فوری حذف شدگی کی درخواست دیں", "reason": "دلیل", "c-reason": "دستی وجہ", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "آپ کو دلیل لازمی طور پر دینی چاہیے!", "error-page": "صفحے کا ربط ضروری ہے۔", "error-user": "صارفی نام لازمی ہے", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "شکایت پہلے ہی درج ہوچکی ہے", "error-SDrequested": "فوری حذف شدگی کی درخواست پہلے ہی دی جاچکی ہے", "error-api": "$1 کی شکایت کے دوران کوئی خطا پیش آئی۔", "error-activated": "$1 اس ویکی پر فعال نہیں ہے", "error-specialpage": "خاص صفحات کی شکایت نہیں کی جاسکتی", "success": "تکمیل شد", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "بند کریں", "username": "صارف کا نام", "hide-username": "صارف نام چھپائیں", "pagename": "صفحے کا نام", "OSR-choose": "نگہداری کے لیے دلیل منتخب کریں", "OSR-button": "نگہداری کی درخواست دیں", "OSR-description": "نگہداروں کو برقی خط لکھیں" }, "pl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Zgłoś", "process": "Zgłaszanie...", "local-button": "Lokalne", "global-button": "Globalne", "type": "Rodzaj zgłoszenia", "title": "Zgłoś użytkownika", "description": "Zgłoś użytkownika do administracji", "Ptitle": "Zgłoś stronę do administracji", "Pdescription": "Poproś o zabezpieczenie strony", "SDtitle": "Ekspresowe kasowanie", "SDdescription": "Zgłoś stronę do ekspresowego kasowania (lokalnie)", "SDgsr": "Zgłoś stronę do ekspresowego kasowania na Global sysops/Requests", "SDprocess": "Zgłaszanie...", "reason": "Powód", "c-reason": "Inny powód:", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Musisz podać powód!", "error-page": "Musisz podać stronę!", "error-user": "Musisz podać użytkownika!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Użytkownik jest już zgłoszony.", "error-SDrequested": "Ta strona została już zgłoszona do EK.", "error-api": "Wystąpił błąd podczas zgłaszania $1.", "error-activated": "$1 nie jest dostępny na tej wiki.", "error-specialpage": "Strony specjalne nie mogą być zgłoszone.", "success": "Zgłoszenie wysłane", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Zamknij", "username": "Użytkownik", "hide-username": "Ukryj nazwę użytkownika", "pagename": "Strona", "OSR-choose": "Wybierz powód usunięcia wersji", "OSR-button": "Zgłoś do usunięcia przez rewizorów", "OSR-description": "Wyślij maila do rewizorów" }, "bn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "রিপোর্ট", "process": "রিপোর্ট করা হচ্ছে...", "local-button": "স্থানীয় রিপোর্ট", "global-button": "বৈশ্বিক রিপোর্ট", "type": "রিপোর্টের ধরণ", "title": "ব্যবহারকারীর বিরুদ্ধে রিপোর্ট", "description": "প্রশাসকদের আলোচনাসভায় ব্যবহারকারীকে নিয়ে রিপোর্ট করুন", "Ptitle": "পাতা রিপোর্ট", "Pdescription": "পাতা সুরক্ষার অনুরোধ", "SDtitle": "দ্রুত অপসারণ", "SDdescription": "পাতাটি দ্রুত অপসারণের জন্য অনুরোধ", "SDgsr": "Global sysops/Requests-তে অপসারণের অনুরোধ করুন", "SDprocess": "দ্রুত অপসারণের অনুরোধ করা হচ্ছে...", "reason": "কারণ", "c-reason": "নিজস্ব যৌক্তিকতা", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "আপনাকে অব্যশই একটি কারণ যোগ করতে হবে!", "error-page": "আপনাকে অব্যশই একটি পাতার নাম যোগ করতে হবে!", "error-user": "আপনাকে অব্যশই একজন ব্যবহারকারীর নাম যোগ করতে হবে!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "ইতিমধ্যে রিপোর্ট করা হয়েছে।", "error-SDrequested": " ইতিমধ্যে দ্রুত অপসারণের অনুরোধ করা হয়েছে।", "error-api": "$1 রিপোর্ট করার সময় একটি ত্রুটি হয়েছে।", "error-activated": "$1 এই উইকিতে সক্রিয় নয়।", "error-specialpage": "বিশেষ পাতা নিয়ে রিপোর্ট করা যাবে না।", "success": "সফলভাবে অনুরোধ করা হয়েছে।", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "বন্ধ করুন", "username": "ব্যবহারকারীর নাম", "hide-username": "ব্যবহারকারী নাম লুকান", "pagename": "পাতার নাম", "OSR-choose": "গোপন করার জন্য একটি কারণ নির্বাচন করুন", "OSR-button": "গোপন করার জন্য অনুরোধ করুন", "OSR-description": "গোপনকারীদের ইমেইল পাঠান" }, "sv": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapportera", "process": "Rapporterar...", "local-button": "Rapportera lokalt", "global-button": "Rapportera globalt", "type": "Typ av rapport", "title": "Rapportera användare", "description": "Rapportera användare till administratörernas uppslagstavla", "Ptitle": "Rapportera sida", "Pdescription": "Begär skrivskydd för sida", "SDtitle": "Snabbradering", "SDdescription": "Begär snabbradering för denna sida", "SDgsr": "Begär snabbradering på Global sysops/Requests", "SDprocess": "Begär snabbradering...", "reason": "Anledning", "c-reason": "Anpassad anledning", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Du behöver ange en anledning!", "error-page": "Du behöver ange en sida!", "error-user": "Du behöver ange en användare!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Redan rapporterad.", "error-SDrequested": "Snabbradering redan begärd.", "error-api": "Ett fel uppstod när $1 skulle rapporteras.", "error-activated": "$1 är inte aktiverat på denna wiki.", "error-specialpage": "Specialsidor kan inte rapporteras.", "success": "Begäran lyckad", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Stäng", "username": "Användarnamn", "hide-username": "Dölj användarnamn", "pagename": "Sida", "OSR-choose": "Välj en anledning för censur", "OSR-button": "Begär censur", "OSR-description": "Skicka ett e-postmeddelande till censorerna" }, "nl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Melden", "process": "Rapporteren...", "local-button": "Lokaal melden", "global-button": "Globaal melden", "type": "Rapporttype", "title": "Gebruiker rapporteren", "description": "Meld de gebruiker bij verzoekpagina voor moderatoren", "Ptitle": "Pagina melden", "Pdescription": "Paginabeveiliging aanvragen", "SDtitle": "Nuweg", "SDdescription": "Verzoek voor directe verwijdering van deze pagina", "SDgsr": "Nuweg verzoek bij de Global sysops/Requests", "SDprocess": "Nuweg verzoek...", "reason": "Reden", "c-reason": "Custom reason", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Je moet een reden opgeven!", "error-page": "Je moet een pagina opgeven!", "error-user": "Je moet een gebruiker opgeven!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Is al gerapporteerd.", "error-SDrequested": "Deze nuweg verzoek is al aangevraagd.", "error-api": "Er is een fout opgetreden tijdens het melden van $1.", "error-activated": "$1 is niet geactiveerd op deze wiki.", "error-specialpage": "Speciale pagina's kunnen niet gerapporteerd worden.", "success": "Aanvraag geslaagd", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Sluiten", "username": "Gebruikersnaam", "hide-username": "Gebruikersnaam verbergen", "pagename": "Paginanaam", "OSR-choose": "Kies een reden om oversight aan te vragen", "OSR-button": "Oversight verzoek", "OSR-description": "Mailen naar oversighters" }, "sl": { "doc": "Dokumentacija", "help": "Pomoč", "settings": "Nastavitve", "feedback": "Povratne informacije", "button": "Prijavi", "process": "Prijavljam ...", "local-button": "Lokalna prijava", "global-button": "Globalna prijava", "type": "Tip prijave", "title": "Prijavi uporabnika", "description": "Prijavi uporabnika administratorjem", "Ptitle": "Prijavi stran", "Pdescription": "Zahtevaj zaščito strani", "SDtitle": "Hitro brisanje", "SDdescription": "Zahtevaj hitro brisanje strani", "SDgsr": "Zahtevaj hitri izbris na Global sysops/Requests", "SDprocess": "Zahtevaj hitro brisanje strani ...", "reason": "Razlog", "c-reason": "Drug razlog", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Navesti moraš razlog!", "error-page": "Navesti moraš tarčno stran!", "error-user": "Navesti moraš uporabnika!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Že prijavljeno.", "error-SDrequested": "Hitro brisanje je bilo že zahtevano.", "error-api": "Med prijavljanjem $1 je prišlo do napake.", "error-activated": "$1 ni aktiviran na temu vikiju.", "error-specialpage": "Posebne strani ne morejo biti prijavljene.", "success": "Prošnja uspešno poslana", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Zapri", "username": "Uporabniško ime", "hide-username": "Skrij uporabniško ime", "pagename": "Ime strani", "OSR-choose": "Zahtevajte razlog za izbris", "OSR-button": "Zahtevajte ukinjevalca", "OSR-description": "Pošljite e-pošto ukinjevalcem" }, "ko": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "신고", "process": "보고 중...", "local-button": "로컬 보고", "global-button": "전역 신고", "type": "보고 유형", "title": "대상 신고하기", "description": "대상을 관리자 알림판에 관리 요청하기", "Ptitle": "페이지 관리 요청하기", "Pdescription": "페이지 보호를 요청하기", "SDtitle": "빠른 삭제", "SDdescription": "페이지 빠른 삭제를 요청하기", "SDgsr": "전역 관리자/요청에 빠른 삭제 요청하기", "SDprocess": "빠른 삭제 요청 중...", "reason": "사유", "c-reason": "커스텀 사유", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "사유를 작성해야 합니다!", "error-page": "관리 요청할 페이지를 작성해야 합니다!", "error-user": "신고할 사용자를 작성해야 합니다!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "이미 신고됨.", "error-SDrequested": "빠른 삭제 이미 요청됨.", "error-api": "$1을 신고하던 도중 오류가 발생했습니다.", "error-activated": "$1은 이 위키에서 활성화되지 않은 상태입니다.", "error-specialpage": "특수 페이지는 관리 요청이 불가능합니다.", "success": "요청 성공", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "닫기", "username": "사용자 이름", "hide-username": "사용자 이름 숨기기", "pagename": "페이지 이름", "OSR-choose": "기록보호 사유 선택하기", "OSR-button": "기록보호 요청하기", "OSR-description": "기록보호자에게 메일 보내기" }, "zh-hans": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "举报", "process": "处理举报中…", "local-button": "本地举报", "global-button": "全域举报", "type": "举报类型", "title": "举报用户", "description": "向管理人员举报用户", "Ptitle": "举报页面", "Pdescription": "请求保护页面", "SDtitle": "快速删除", "SDdescription": "请求快速删除页面", "SDgsr": "在“Global sysops/Requests”请求快速删除", "SDprocess": "请求快速删除中…", "reason": "原因", "c-reason": "自定义原因", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "您必须指定原因!", "error-page": "您必须指定页面!", "error-user": "您必须指定用户!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "该目标已被举报。", "error-SDrequested": "该页面已请求快速删除。", "error-api": "报告$1时发生错误。", "error-activated": "$1未在此项目激活", "error-specialpage": "不能提报特殊页面。", "success": "请求成功", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "关闭", "username": "用户名", "hide-username": "隐藏用户名", "pagename": "页面标题", "OSR-choose": "选择一个监督原因", "OSR-button": "请求监督", "OSR-description": "传送电邮至监督员" }, "zh-hant": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "檢舉", "process": "處理檢舉中…", "local-button": "本地檢舉", "global-button": "全域檢舉", "type": "檢舉類型", "title": "檢舉使用者", "description": "向管理人員檢舉使用者", "Ptitle": "檢舉頁面", "Pdescription": "請求保護頁面", "SDtitle": "快速刪除", "SDdescription": "請求快速刪除頁面", "SDgsr": "在「Global sysops/Requests」請求快速刪除", "SDprocess": "請求快速刪除中…", "reason": "原因", "c-reason": "自訂原因", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "您必須指定原因!", "error-page": "您必須指定頁面!", "error-user": "您必須指定使用者!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "該目標已被檢舉。", "error-SDrequested": "該頁面已請求快速刪除。", "error-api": "報告$1時發生錯誤。", "error-activated": "$1未在此專案啟用", "error-specialpage": "不能提報特殊頁面。", "success": "請求成功", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "關閉", "username": "使用者名稱", "hide-username": "隱藏使用者名稱", "pagename": "頁面標題", "OSR-choose": "選擇一個監督原因", "OSR-button": "請求監督", "OSR-description": "傳送電郵至監督員" }, "ru": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Отправить запрос", "process": "Reporting...", "local-button": "Local report", "global-button": "Отправить глобальный запрос", "type": "Report type", "title": "Отправить запрос на участника", "description": "Запросить блокировку участника", "Ptitle": "Отправить запрос на странцу", "Pdescription": "Запросить защиту страницы", "SDtitle": "Быстрое удаление", "SDdescription": "Запросить быстрое удаление данной страницы", "SDgsr": "Request speedy deletion at Global sysops/Requests", "SDprocess": "Request speedy deletion...", "reason": "Причина", "c-reason": "Custom reason", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Необходимо указать причину!", "error-page": "Необходимо указать страницу!", "error-user": "Необходимо указать участника!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Запрос уже существует.", "error-SDrequested": "Speedy deletion already requested.", "error-api": "При отправке запроса о «$1» возникла ошибка.", "error-activated": "$1 не активирован на этом вики.", "error-specialpage": "Невозможно отправить запрос о служебной странице.", "success": "Запрос успешен", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Закрыть", "username": "Участник", "hide-username": "Hide user name", "pagename": "Страница", "OSR-choose": "Выберите причину для скрытия", "OSR-button": "Запрос ревизорам", "OSR-description": "Написать электронное письмо ревизорам" }, "tl": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ulat", "process": "Nag-uulat...", "local-button": "Ulat lokal", "global-button": "Ulat global", "type": "Uri ng ulat", "title": "Iulat ang tagagamit", "description": "Iulat ang tagagamit sa mga Tagapangasiwa\" sa Kapihan", "Ptitle": "Pahina ng ulat", "Pdescription": "Hiling iprotekta ang pahina", "SDtitle": "Mabilisang pagbura", "SDdescription": "Hiling para sa mabilisang pagbura ng pahinang ito", "SDgsr": "Hiling sa mabilisang pagbura sa Global sysops/Requests", "SDprocess": "Hinihiling ang mabilisang pagbura...", "reason": "Dahilan", "c-reason": "Ibang dahilan", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Kailangan mong magbigay ng dahilan!", "error-page": "Kailangan mong magbigay ng pahina!", "error-user": "Kailangan mong magbigay ng tagagamit!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Naiulat na.", "error-SDrequested": "Nahiling na ang mabilisang pagbura.", "error-api": "May nangyaring kamalian habang inuulat ang $1.", "error-activated": "Hindi pinapagana ang $1 sa wiki na ito.", "error-specialpage": "Hindi maaaring iulat ang mga natatanging pahina.", "success": "Matagumpay ang hiling", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Isara", "username": "Pangalan ng tagagamit", "hide-username": "Itago ang pangalan ng tagagamit", "pagename": "Pangalan ng pahina", "OSR-choose": "Magbigay ng dahilan para sa pagingat-tago", "OSR-button": "Humingi ng pagingat-tago", "OSR-description": "Magpadala ng sulatroniko sa mga tagapagingat-tago" }, "ar": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "أبلغ", "process": "جار الإبلاغ...", "local-button": "تقرير محلي", "global-button": "تقرير عالمي", "type": "نوع التقرير", "title": "أبلغ المستخدم", "description": "أبلغ المستخدم إلى الإخطار الإداريين", "Ptitle": "أبلغ الصفحة", "Pdescription": "طلب حماية الصفحة", "SDtitle": "حذف السريع", "SDdescription": "طلب حذف السريع لهذه الصفحة", "SDgsr": "طلب حذف السريع إلى Global sysops/Requests", "SDprocess": "طلب حذف السريع...", "reason": "السبب", "c-reason": "سبب مخصص", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "يجب عليك إعطاء سببا!", "error-page": "يجب عليك إعطاء صفحة!", "error-user": "يجب عليك إعطاء المستخدم!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "تم الإبلاغ عنها بالفعل.", "error-SDrequested": "تم الطلب الحذف السريع بالفعل.", "error-api": "حدث خطأ أثناء الإبلاغ $1.", "error-activated": "لم يتم تفعيل $1 على هذا الويكي.", "error-specialpage": "لا يمكن الإبلاغ عن الصفحات الخاصة. ", "success": "تم الطلب بنجاح", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "أغلق", "username": "اسم المستخدم", "hide-username": "خف الاسم المستخدم", "pagename": "اسم الصفحة", "OSR-choose": "اختر سببًا الإخفاء", "OSR-button": "طلب الإخفاء", "OSR-description": "أرسل بريد إلكتروني إلى الخافين" }, "vi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Báo cáo", "process": "Đang tiến hành...", "local-button": "Cục bộ (trên wiki này)", "global-button": "Toàn cục (SRG)", "type": "Loại báo cáo", "title": "Báo cáo thành viên", "description": "Báo cáo lên TNCBQV/trang liên lạc BQV", "Ptitle": "Báo cáo trang", "Pdescription": "Yêu cầu khóa trang", "SDtitle": "Yêu cầu xóa nhanh", "SDdescription": "Yêu cầu xóa nhanh trang này", "SDgsr": "Yêu cầu xóa nhanh tại trang Yêu cầu BQV toàn cục (GSR)", "SDprocess": "Đang yêu cầu xóa nhanh...", "reason": "Lý do", "c-reason": "Lý do khác", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Bạn chưa đưa ra lý do!", "error-page": "Bạn chưa cung cấp tên trang!", "error-user": "Bạn chưa cung cấp tên thành viên!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Đã báo cáo trước đó rồi.", "error-SDrequested": "Đã yêu cầu xóa nhanh trang này trước đó rồi.", "error-api": "Có lỗi xảy ra khi báo cáo $1.", "error-activated": "$1 chưa được kích hoạt tại wiki này.", "error-specialpage": "Không thể báo cáo trang đặc biệt.", "success": "Thành công", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Đóng", "username": "Tên người dùng", "hide-username": "Ẩn tên người dùng", "pagename": "Tên trang", "OSR-choose": "Vui lòng chọn lý do để triệt bỏ dữ liệu này", "OSR-button": "Yêu cầu triệt bỏ dữ liệu", "OSR-description": "Gửi thư cho các giám sát viên" }, "ja": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "報告", "process": "報告中…", "local-button": "ローカル", "global-button": "グローバル", "type": "報告の種類", "title": "利用者を報告", "description": "利用者を管理者伝言板に報告", "Ptitle": "保護を依頼", "Pdescription": "保護を依頼する", "SDtitle": "即時削除", "SDdescription": "このページの即時削除を依頼", "SDgsr": "グローバル管理者に即時削除を依頼", "SDprocess": "即時削除を依頼中…", "reason": "理由", "c-reason": "任意の理由", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "理由を入力してください!", "error-page": "ページを指定してください!", "error-user": "利用者を指定してください!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "報告済み", "error-SDrequested": "即時削除依頼済み", "error-api": "$1の報告中にエラーが発生しました。", "error-activated": "このウィキでは$1は有効になっていません。", "error-specialpage": "特別ページは報告できません。", "success": "依頼を送信しました", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "閉じる", "username": "利用者名", "hide-username": "利用者名を隠す", "pagename": "ページ名", "OSR-choose": "Choose a reason for oversight", "OSR-button": "Request oversight", "OSR-description": "Send an email to oversighters" }, "hi ": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "रिपोर्ट", "process": "रिपोर्ट कर रहा हैं...", "local-button": "स्थायी रिपोर्ट", "global-button": "ग्लोबल रिपोर्ट", "type": "रिपोर्ट का प्रकार", "title": "उपयोगकर्ता को रिपोर्ट करें", "description": "उपयोगकर्ता को प्रबंधक सूचनापट्ट पर रिपोर्ट करें", "Ptitle": "पृष्ठ की रिपोर्ट करें", "Pdescription": "पृष्ठ सुरक्षा का अनुरोध करें", "SDtitle": "शीघ्र हटाना", "SDdescription": "इस पृष्ठ का शीघ्र हटाने का अनुरोध करें", "SDgsr": "Global sysops/Requests पर शीघ्र हटाने का अनुरोध करें", "SDprocess": "शीघ्र हटाने का अनुरोध कर रहा हैं...", "reason": "कारण", "c-reason": "कस्टम कारण", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "आपको एक कारण देना होगा!", "error-page": "आपको एक पृष्ठ देना होगा!", "error-user": "आपको एक उपयोगकर्ता देना होगा!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "पहले ही रिपोर्ट किया गया है", "error-SDrequested": "शीघ्र हटाने का अनुरोध पहले ही किया जा चुका है", "error-api": "$1 को रिपोर्ट करते समय एक त्रुटि हुई।", "error-activated": "$1 इस विकी पर सक्रिय नहीं है।", "error-specialpage": "विशेष पृष्ठों को रिपोर्ट नहीं किया जा सकता।", "success": "अनुरोध सफल रहा", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "बंद करें", "username": "उपयोगकर्ता नाम", "hide-username": "उपयोगकर्ता नाम छिपाएँ", "pagename": "पृष्ठ का नाम", "OSR-choose": "ओवरसाइट के लिए एक कारण चुनें", "OSR-button": "ओवरसाइट का अनुरोध करें", "OSR-description": "ओवरसाइटर्स को ईमेल भेजें" }, "th": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "รายงาน", "process": "กำลังรายงาน...", "local-button": "รายงานท้องถิ่น (บนวิกินี้)", "global-button": "รายงานข้ามโครงการ (SRG)", "type": "ประเภทการรายงาน", "title": "รายงานผู้ใช้", "description": "รายงานผู้ใช้ไปยังหน้ากระดานประกาศผู้ดูแลระบบ", "Ptitle": "รายงานหน้า", "Pdescription": "แจ้งป้องกันหน้า", "SDtitle": "การลบทันที", "SDdescription": "แจ้งลบทันทีของหน้านี้", "SDgsr": "แจ้งลบทันทีที่หน้า Global sysops/Requests (GSR)", "SDprocess": "กำลังแจ้งลบทันที...", "reason": "เหตุผล", "c-reason": "เหตุผลที่กำหนด", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "คุณต้องระบุเหตุผล!", "error-page": "คุณต้องระบุหน้า!", "error-user": "คุณต้องระบุผู้ใช้!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "มีการรายงานไปแล้ว", "error-SDrequested": "มีการแจ้งการลบทันทีไปแล้ว", "error-api": "เกิดข้อผิดพลาดระหว่างการรายงาน $1", "error-activated": "$1 ไม่พร้อมใช้งานบนวิกินี้", "error-specialpage": "ไม่สามารถรายงานหน้าพิเศษได้", "success": "แจ้งสำเร็จ", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "ปิด", "username": "ชื่อผู้ใช้", "hide-username": "ซ่อนชื่อผู้ใช้", "pagename": "ชื่อหน้า", "OSR-choose": "เลือกเหตุผลสำหรับการควบคุมประวัติ", "OSR-button": "แจ้งควบคุมประวัติ", "OSR-description": "ส่งอีเมลถึงผู้ควบคุมประวัติ" }, "tr": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Bildir", "process": "İşleniyor...", "local-button": "Yerel talep", "global-button": "Küresel talep", "type": "Bir seçenek belirleyin", "title": "Kullanıcıyı bildir", "description": "Kullanıcıyı hizmetlilere bildir", "Ptitle": "Sayfayı bildir", "Pdescription": "Sayfanın korunmasını talep edin", "SDtitle": "Hızlı silme talebi oluştur", "SDdescription": "Sayfanın hızlı silinmesini talep edin", "SDgsr": "Global sysops/Requests (Küresel hizmetli istekleri) panosunda hızlı silme talebi oluştur", "SDprocess": "İşleniyor...", "reason": "Gerekçe", "c-reason": "Özel gerekçe", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Bir gerekçe belirtmek zorundasınız!", "error-page": "Sayfa adını belirtmek zorundasınız!", "error-user": "Kullanıcı adını belirtmek zorundasınız!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Kullanıcı zaten raporlanmış.", "error-SDrequested": "Hızlı silme talebi zaten oluşturulmuş.", "error-api": "$1 bildirilirken bir hata oluştu.", "error-activated": "$1 bu vikide etkinleştirilmemiş", "error-specialpage": "Özel sayfaları bildiremezsiniz.", "success": "İşlem başarılı.", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Kapat", "username": "Kullanıcı adı", "hide-username": "Kullanıcı adını gizle", "pagename": "Sayfa adı", "OSR-choose": "Gözetmen talebi için bir seçenek belirleyin", "OSR-button": "Gözetmen talebi oluştur", "OSR-description": "Gözetmenlere e-posta gönder" }, "ro": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Sesizare", "process": "Sesizare în curs...", "local-button": "Sesizare locală", "global-button": "Sesizare globală", "type": "Tip de sesizare", "title": "Reclamație utilizator", "description": "Solicită administratorilor blocarea utilizatorului", "Ptitle": "Cerere de protejare", "Pdescription": "Solicită protejarea paginii", "SDtitle": "Cerere de ștergere rapidă", "SDdescription": "Solicită ștergerea rapidă a acestei pagini", "SDgsr": "Solicită ștergerea rapidă de la administratorii globali", "SDprocess": "Cerere de ștergere rapidă în curs...", "reason": "Justificare", "c-reason": "Justificare personalizată", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Trebuie să specificați o justificare!", "error-page": "Trebuie să specificați titlul paginii!", "error-user": "Trebuie să specificați numele utilizatorului!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Utilizatorul a fost reclamat deja.", "error-SDrequested": "Ștergerea rapidă a fost deja solicitată.", "error-api": "O eroare a apărut în cursul reclamării lui $1.", "error-activated": "$1 nu este activ pe acest wiki.", "error-specialpage": "Paginile speciale nu pot fi raportate.", "success": "Solicitare reușită", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Închide", "username": "Nume de utilizator", "hide-username": "Ascunde numele de utilizator", "pagename": "Titlul paginii", "OSR-choose": "Motivul ascunderii", "OSR-button": "Solicită ascunderea", "OSR-description": "Trimite un mesaj email administratorilor care efectuează ascunderea" }, "fi": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Ilmianna", "process": "Ilmiannetaan...", "local-button": "Paikallinen ilmianto", "global-button": "Globaali ilmianto", "type": "Ilmiannon tyyppi", "title": "Ilmianna käyttäjä", "description": "Ilmianna käyttäjä ylläpitäjien ilmoitustaululle", "Ptitle": "Ilmianna sivu", "Pdescription": "Pyydä sivun suojaamista", "SDtitle": "Pikapoisto", "SDdescription": "Pyydä tämän sivun pikapoistoa", "SDgsr": "Pyydä pikapoistoa sivulla Global sysops/Requests", "SDprocess": "Pyydetään pikapoistoa...", "reason": "Syy", "c-reason": "Mukautettu syy", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Sinun on annettava syy!", "error-page": "Sinun on annettava sivu!", "error-user": "Sinun on annettava käyttäjä!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Ilmianto on jo lähetetty.", "error-SDrequested": "Pikapoistoa on jo pyydetty.", "error-api": "Tapahtui virhe ilmiannettaessa käyttäjää/sivua $1.", "error-activated": "$1 ei ole aktivoitu tässä wikissä.", "error-specialpage": "Toimintosivuja ei voi ilmiantaa.", "success": "Pyyntö lähetetty", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Sulje", "username": "Käyttäjänimi", "hide-username": "Piilota käyttäjänimi", "pagename": "Sivun nimi", "OSR-choose": "Valitse häivytyksen syy", "OSR-button": "Pyydä häivytystä", "OSR-description": "Lähetä sähköpostia häivyttäjille" }, "nb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter bruker", "description": "Rapporter brukeren på Administratorenes oppslagstavle", "Ptitle": "Rapporter side", "Pdescription": "Be om sidebeskyttelse", "SDtitle": "Hurtigsletting", "SDdescription": "Be om hurtigsletting av denne siden", "SDgsr": "Be om hurtigsletting på Global sysops/Requests", "SDprocess": "Ber om hurtigsletting ...", "reason": "Årsak", "c-reason": "Tilpasset årsak", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Du må oppgi en årsak!", "error-page": "Du må oppgi en side!", "error-user": "Du må oppgi en bruker!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Allerede rapportert.", "error-SDrequested": "Hurtigsletting allerede forespurt.", "error-api": "En feil oppstod ved rapportering av $1.", "error-activated": "$1 er ikke aktivert på denne wikien.", "error-specialpage": "Spesialsider kan ikke rapporteres.", "success": "Vellykket forespørsel", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Lukk", "username": "Brukernavn", "hide-username": "Skjul brukernavn", "pagename": "Sidetittel", "OSR-choose": "Velg en årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send en e-post til historikkryddere" }, "nn": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Rapporter", "process": "Rapporterer ...", "local-button": "Rapporter lokalt", "global-button": "Rapporter globalt", "type": "Type rapport", "title": "Rapporter brukar", "description": "Rapporter brukaren til administratorane", "Ptitle": "Rapporter side", "Pdescription": "Be om sidevern", "SDtitle": "Snøggsletting", "SDdescription": "Be om snøggsletting av denne sida ", "SDgsr": "Be om snøggsletting på Global sysops/Requests ", "SDprocess": "Ber om snøggsletting ...", "reason": "Årsak", "c-reason": "Tilpassa årsak", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Du må oppgje ei årsak!", "error-page": "Du må oppgje ei side!", "error-user": "Du må oppgje ein brukar!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Allereie rapportert.", "error-SDrequested": "Nokon har allereie bedt om at sida vert snøggsletta.", "error-api": "Ein feil oppsto under rapportering av $1.", "error-activated": "$1 er ikkje aktivert på denne wikien.", "error-specialpage": "Du kan ikkje rapportere spesialsider.", "success": "Førespurnaden var vellukka", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Lukk", "username": "Brukarnamn", "hide-username": "Skjul brukarnamn", "pagename": "Sidetittel", "OSR-choose": "Vel ei årsak for sideversjonsskjuling", "OSR-button": "Be om sideversjonsskjuling", "OSR-description": "Send ein e-post til historikkryddarar" }, "pt": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Reportar", "process": "Reportando...", "local-button": "Reporte local", "global-button": "Reporte global", "type": "Tipo de reporte", "title": "Reportar conta", "description": "Reportar a conta a administradores", "Ptitle": "Página a reportar", "Pdescription": "Pedir proteção de página", "SDtitle": "Eliminação rápida", "SDdescription": "Pedir eliminação rápida desta página", "SDgsr": "Pedir eliminação rápida em Global sysops/Requests", "SDprocess": "Pedindo eliminação rápida...", "reason": "Motivo", "c-reason": "Motivo específico", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Precisa informar o motivo!", "error-page": "Precisa informar a página!", "error-user": "Precisa informar a conta!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Já reportado.", "error-SDrequested": "Eliminação rápida já solicitada.", "error-api": "Aconteceu um erro ao reportar $1.", "error-activated": "$1 não está ativado nesta wiki.", "error-specialpage": "Páginas especiais não podem ser reportadas.", "success": "Pedido realizado", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Fechar", "username": "Nome da conta", "hide-username": "Esconder nome da conta", "pagename": "Nome da página", "OSR-choose": "Escolha uma razão para a supressão", "OSR-button": "Pedir supressão", "OSR-description": "Enviar e-mail aos supressores" }, "id": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Lapor", "process": "Sedang melaporkan...", "local-button": "Lapor secara lokal", "global-button": "Lapor secara global", "type": "Jenis laporan", "title": "Lapor pengguna", "description": "Lapor pengguna ini ke papan pengumuman pengurus", "Ptitle": "Halaman laporan", "Pdescription": "Meminta pelindungan halaman", "SDtitle": "Penghapusan cepat", "SDdescription": "Meminta penghapusan cepat halaman ini", "SDgsr": "Meminta penghapusan cepat di Global sysops/Requests", "SDprocess": "Meminta penghapusan cepat...", "reason": "Alasan", "c-reason": "Alasan ubahsuaian", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Anda harus mencantumkan alasannya.", "error-page": "Anda harus mencantumkan halamannya.", "error-user": "Anda harus mencantumkan nama penggunanya.", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Sudah dilaporkan.", "error-SDrequested": "Penghapusan cepat sudah dilaporkan.", "error-api": "Terjadi galat ketika melaporkan $1.", "error-activated": "$1 tidak dinyalakan di wiki ini.", "error-specialpage": "Halaman istimewa tidak dapat dilaporkan.", "success": "Permintaan berhasil dilakukan", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Tutup", "username": "Nama pengguna", "hide-username": "Sembunyikan nama pengguna", "pagename": "Nama halaman", "OSR-choose": "Cantumkan alasan untuk menyembunyikan", "OSR-button": "Meminta penyembunyian", "OSR-description": "Kirim surel kepada Pengawas" }, "ceb": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "I-report", "process": "Sa pag-uswag...", "local-button": "I-report nga wiki", "global-button": "I-report sa tibuok kalibutan", "type": "Type sa I-report", "title": "I-report sa Gumagamit", "description": "I-report sa tigdumala panid sa kontak", "Ptitle": "I-report sa panid", "Pdescription": "Paghangyo sa lock sa panid", "SDtitle": "Paghangyo og paspas nga pagtangtang", "SDdescription": "Hangyoa ang paspas nga pagtangtang niini nga panid", "SDgsr": "Paghangyo ug paspas nga pagtangtang sa panid sa Global sysops/Requests", "SDprocess": "Paghangyo sa paspas nga pagtangtang...", "reason": "Rason", "c-reason": "Ubang rason", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Wala ka naghatag ug rason!", "error-page": "Wala ka naghatag ug ngalan sa panid!", "error-user": "Wala ka naghatag ug ngalan sa gumagamit!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Gi-report na", "error-SDrequested": "Kini nga panid gihangyo alang sa dali nga pagtangtang kaniadto", "error-api": "Usa ka sayup ang nahitabo samtang nagreport sa $1", "error-activated": "Ang $1 wala magamit sa kini nga wiki", "error-specialpage": "Dili maka-report sa espesyal nga panid", "success": "Kalampusan", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Duol", "username": "Ngalan sa gumagamit", "hide-username": "Tagoa ang gumagamit", "pagename": "Ngalan sa panid", "OSR-choose": "Paghatag ug rason sa pagtago", "OSR-button": "Naghangyo sa pagtago", "OSR-description": "Ipadala ang email sa Pagdumala" }, "uk": { "doc": "Documentation", "help": "Help", "settings": "Settings", "feedback": "Feedback", "button": "Відправити запит", "process": "запит відправляється...", "local-button": "Локальний запит", "global-button": "Відправити глобальний запит", "type": "Тип запиту", "title": "Відправити запит на користувача", "description": "Повідомити про користувача на сторінці запитів до адміністраторів", "Ptitle": "Відправити запит на сторінку", "Pdescription": "Запросити захист сторінки", "SDtitle": "Швидке вилучення", "SDdescription": "Запросити швидке вилучення цієї сторінки", "SDgsr": "Запит на швидке вилучення на сторінці Global sysops/Requests", "SDprocess": "Запит на швидке вилучення...", "reason": "Причина", "c-reason": "Власне обґрунтування", "o-reason": "Reason / additional links (optional)", "addusers": "Add more users", "error-reason": "Необхідно вказати причину!", "error-page": "Необхідно вказати сторінку!", "error-user": "You must give a user!", "error-url": "You must give a URL!", "error-local": "This wiki is currently not enabled for local reporting.", "error-requested": "Запит вже існує.", "error-SDrequested": "Запит на швидке вилучення вже надіслано.", "error-api": "Під час надсилання запиту «$1» виникла помилка.", "error-activated": "$1 не активовано на цій вікі.", "error-specialpage": "Неможливо надіслати запит про службову сторінку.", "success": "Запит виконано", "success-sent": "Request successfully sent", "success-sent-copy": "Mail-copy was sent to you", "success-SD": "Speedy deletion request added", "local-OS": "Local oversighters", "close": "Закрити", "username": "Користувач", "hide-username": "Приховати ім'я користувача", "pagename": "Сторінка", "OSR-choose": "Оберіть причину приховання", "OSR-button": "Запит ревізорам", "OSR-description": "Написати електронний лист ревізорам" } }; lang = (mw.user.options.get('language') in LangData ? mw.user.options.get('language') : undefined); function trnslt(key) { LLang = (lang == undefined ? 'en' : lang); if (LangData[LLang][key]) { return LangData[LLang][key]; } return LangData.en[key]; } XReport = { version: 'v3.0a', name: 'XReport', documentation: {framed: false,icon: 'articles', label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/XReport')}, feedback: {framed: false,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport')}, feedbackP2: {framed: false,disabled:true,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/XReport' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport')}, settings: {framed: false,icon: 'settings',label: trnslt('settings'),disabled:true}/*.on("click", function() {self.switchTo('settings')})*/, link: '[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]', signature: ' --~~~~', mwh: '<div style=\'position:absolute; right:1em; font-size:70%; top:0.1em\'><p style=\'color:red\'>Made with ❤️ by <a href=\'' + (lang == 'de' ? 'https://de.wikipedia.org/wiki/User:TenWhile6' : 'https://meta.wikimedia.org/wiki/User:TenWhile6') + '\'>TenWhile6</a></p></div>', translateUI: 'Your language is not supported? Feel free to <a style=\'font-weight: bold\' href=\'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/XReport#User_interface\'>translate</a> the user interface!', monthsFr: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], monthsDe: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], OSRequester: { requesterusername: mw.config.get('wgUserName') == 'TenWhile6' ? 'Ten' : mw.config.get('wgUserName'), documentation: {framed: false,icon: 'articles',label: trnslt('doc'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer:TenWhile6/OSRequester' : 'https://meta.wikimedia.org/wiki/User:TenWhile6/OSRequester')}, feedback: {framed: false,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/OSRequester' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/OSRequester')}, feedbackP2: {framed: false,disabled:true,icon: 'share',label: trnslt('feedback'), href: (lang == 'de' ? 'https://de.wikipedia.org/wiki/Benutzer_Diskussion:TenWhile6/OSRequester' : 'https://meta.wikimedia.org/wiki/User_talk:TenWhile6/OSRequester')}, } }; XReport.title = `${XReport.name} ${XReport.version}`, XReport.linkS = `<small>${XReport.link}</small>`; XReport.linkK = `(${XReport.link} ${XReport.version})`; XReport.OSRequester.name = `OSRequester (via ${XReport.title})`; XReport.OSRequester.ccme = XReport.OSRequester.requesterusername == 'Ten' ? false : true; XReport.OSRequester.data = { 'stewards': 'Wikimedia_Stewards_(Oversight)', 'metawiki': 'Meta-Wiki_oversighters', 'dewiki': 'Oversight-Email', 'enwiki': 'Oversight', 'bnwiki': 'গোপনকারী', 'zhwiki': 'Oversight-zhwp', 'fiwiki': 'H%C3%A4ivytyspyynn%C3%B6t', 'frwiki': 'Masqueurs', 'itwiki': 'Soppressori', 'jawiki': 'Oversight-JAWP', 'kowiki': '기록보호자', 'eswiki': 'Supervisor~eswiki', 'ptwiki': 'Supressor', 'simplewiki': 'Oversight~simplewiki', 'wikidatawiki': 'Wikidata Oversight', 'bewiki': 'Wizardist', /* one of the two oversighters, because the other one is basically inactive */ 'idwiki': 'Pengawas WBI', 'fawiki': false, 'plwiki': 'wikipedia-pl-oversighters@lists.wikimedia.org', 'ruwiki': 'wikipedia-ru-oversighters@lists.wikimedia.org', 'trwiki': 'gozetmen@lists.wikimedia.org', 'commonswiki': 'Oversight Commons' }; function OSDBdata() { DBx = DB in XReport.OSRequester.data ? DB : 'stewards'; if (XReport.OSRequester.data[DBx]) { return XReport.OSRequester.data[DBx]; } else { mw.notify(`Error: OSDBdata() at ${DBx} status ${status} in ${key}`,{'type':'error','title':XReport.OSRequester.name}); } } pSummary = 'Reporting: Page [[$1]] '+XReport.linkK; uSummary = 'Reporting [[Special:Contributions/$1|$1]] '+XReport.linkK; dSummary = 'Requesting deletion ' + XReport.linkK; deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; if (['commonswiki', 'sourceswiki', 'specieswiki', 'wikidatawiki', 'wikifunctionswiki', 'mediawikiwiki'].includes(DB)) { deleteReasons = ['Vandalism', 'Test page', 'No useful content', 'Out of project scope', 'Author\'s request', 'Empty page', 'Wrong language', 'Not a translation', 'Broken redirect', 'Orphaned talk page', 'Nonsense', 'Spam']; } blocation = mw.config.get('wgMFMode') == 'stable' ? 'p-personal' : 'p-navigation'; clocation = 'p-cactions'; api = new mw.Api({userAgent: `${XReport.name}/${XReport.version}`}); metaapi = DB == 'metawiki' ? api : new mw.ForeignApi('https://meta.wikimedia.org/w/api.php', {userAgent: `${XReport.name}/${XReport.version}`}); today = new Date(); const curPageName = mw.config.get('wgPageName').replace(/_/g, ' '); const constRelevantPageName = mw.config.get('wgRelevantPageName') != null ? mw.config.get('wgRelevantPageName').replace(/_/g, ' ') : ''; const RelevantUserName = mw.config.get('wgRelevantUserName') != null ? mw.config.get('wgRelevantUserName') : ''; var Svx = Server.replace(/^(https?)?:?\/\//, '').split('.'); var iwPrefix = Svx[1] == 'mediawiki' ? 'mw' : (Svx[1] == 'wiktionary' ? 'wikt:' + Svx[0] : (Svx[1] == 'wikiquote' ? 'q:' + Svx[0] : (Svx[1] == 'wikinews' ? 'n:' + Svx[0] : (Svx[1] == 'wikibooks' ? 'b:' + Svx[0]: (Svx[1] == 'wikisource' ? 's:' + Svx[0]: (Svx[1] == 'wikivoyage' ? 'voy:' + Svx[0] : (Svx[1] == 'wikifunctions' ? 'f:' : null))))))); if (Svx[1] == 'wikidata') { iwPrefix = Svx[0] == 'test' ? 'testwikidata' : iwPrefix; iwPrefix = Svx[0] == 'www' ? 'd' : iwPrefix; } else if (Svx[1] == 'wikipedia') { iwPrefix = ['test', 'test2'].includes(Svx[0]) ? Svx[0] + 'wiki' : iwPrefix; iwPrefix = iwPrefix == null ? 'w:' + Svx[0] : iwPrefix; } else if (Svx[1] == 'wikiversity') { iwPrefix = Svx[0] == 'beta' ? Svx[0] + Svx[1] : 'v:' + Svx[0]; } else if (Svx[1] == 'wikimedia') { iwPrefix = Svx[0].length <= 3 ? 'wm'+Svx[0] : Svx[0]; } function sendError(message) { mw.notify(message,{'type':'error','title':XReport.title,autoHide:false}); } var dialog, windowManager, pageDialog, pageWindowManager, QDdialog, QDwindowManager, OSRdialog, OSRwindowManager; mw.loader.using(['mediawiki.util', 'mediawiki.widgets.UserInputWidget', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']); var WikiData = { 'SRG': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock for $1 ===\n{{Status}}\n*{{LockHide|1=$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Global lock for $1', 'I': { 'page': 'Steward requests/Global', 'section': 1, 'regex': '{{\\s*[Ll]uxotool\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Global block for [[Special:Contributions/$1|$1]] ===\n{{Status}}\n* {{Luxotool|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Global block for $1', }, 'H': { 'page': 'Steward requests/Global', 'section': -1, 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '=== Global lock ===\n{{Status}}\n*{{LockHide|1=$1|hidename=1}}\n$2 '+XReport.linkS+XReport.signature, 'summary': 'Reporting user '+XReport.linkK, }, 'reason': ['Cross-wiki abuse', 'Long-term abuse', 'Spam / spambot', 'Lock/ban evasion'] }, 'GSR': { 'page': 'Global sysops/Requests', 'regex': '{{\\s*[Ll]ock[Hh]ide\\s*\\|\\s*(1(\\s*)=|)\\s*$1', 'rtext': '* Please block {{LockHide|1=$1|2=$3}} $2 '+XReport.linkS+XReport.signature, 'summary': 'Reporting user '+XReport.linkK, 'D': { 'page': 'Global sysops/Requests', /*'regex': '\[\[\\s*\\:\\s*(1(\\s*)=|)\\s*$1',*/ 'rtext': '\n* Please delete [[:$3$1]]: $2 '+XReport.linkS+XReport.signature } }, /* GS-Opted-Out Wikis -- Status: 2025-05-09 */ /*'alswiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XReport.linkS+XReport.signature, 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 '+XReport.linkS+XReport.signature } }, now a GS-wiki*/ /*'bswiki': { 'page': 'Wikipedia:Pitanja za administratore', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, }, now a GS-wiki*/ /*'enwikiquote': { 'page': 'Wikiquote:Vandalism in progress', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XReport.linkS+XReport.signature },*/ /*'eswikinews': { 'page': 'Wikinoticias:Tablón de anuncios de los administradores', 'regex': '{{\\s*[Aa]dmin-U\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Vandalismo reiterado ==\n;Estado de solicitud\n* {{EstadoTAA|}}\n;Usuarios/Artículos implicados\n* {{Admin-U|$1}}\n\n;Problema\n* $2\n\n;Usuario que solicita\n* '+XReport.linkS+XReport.signature+'\n\n;Respuesta\n(a rellenar por un administrador)', }, now a GS-wiki*/ /*'frwikiversity': { 'page': 'Wikiversité:Requêtes aux administrateurs/'+today.getFullYear(), 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, }, now a GS-wiki*/ /*'glwiki': { 'page': 'Wikipedia:Taboleiro dos administradores/Bloqueos e proteccións', 'regex': '\\s*$1]]\\s*==', 'rtext': '== Informe sobre [[Special:Contributions/$1|$1]] ==\n\nBloquea {{user|$1}}: $2 '+XReport.linkS+XReport.signature }, now a GS-wiki*/ /*'ltwiki': { 'page': 'Vikipedija:Pranešimai apie pažeidimus', !NO REGEX! 'rtext': '== [[User:$1]] ==\nReport concerning [[Special:Contributions/$1|$1]]: $2 '+XReport.linkS+XReport.signature, }, now a GS-wiki*/ /*'tlwiki': { 'page': 'Usapang Wikipedia:Kapihan', 'regex': '==\\s*Report concerning $1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, }, now a GS-wiki*/ 'anwiki': { 'page': 'Wikipedia:Peticions a los almenistradors', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n* [[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'arwiki': { 'page': 'ويكيبيديا:إخطار الإداريين/منع/الحالية', /* !NO REGEX! */ 'rtext': "==== منع: $1 ====\n{{وضع طلب|انتظار}}\n:\'\'\'{{User|$1}}\nReason: $2 "+XReport.linkS+XReport.signature+"\n\'\'\'رد الإداري\'\'\':\n<!-- من فضلك اكتب تعليقك فوق هذا السطر -->\n-----\n" }, 'bgwiki': { 'page': 'Уикипедия:Заявки_към_администраторите', 'regex': '==\\s*Блокиране на $1\\s*==', 'rtext': '== Блокиране на $1 ==\n[[Special:Contributions/$1]]\n\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Блокиране на $1' }, 'bnwiki': { 'page': 'উইকিপিডিয়া:প্রশাসকদের আলোচনাসভা', 'regex': '==\\s*বাধাদানের অনুরোধ: $1\\s*==', 'rtext': '== বাধাদানের অনুরোধ: $1 ==\n* [[বিশেষ:অবদান/$1]]\n\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'বাধাদানের অনুরোধ: $' }, 'cawiki': { 'page': 'Viquipèdia:Observatori del vandalisme', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'commonswiki': { 'page': 'Commons:Administrators\' noticeboard/Vandalism', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:Report vandal|$1|$2 '+XReport.linkS+XReport.signature+'}}', 'sectionname': '$1' }, 'cswiki': { 'page': 'Wikipedie:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '{{subst:Wikipedie:Nástěnka správců/Zablokovat | blokovat uživatele = $1 | důvod = $2}}', 'P': { 'page': 'Wikipedie:Nástěnka správců', /* !NO REGEX! */ 'rtext': '\n{{subst:Wikipedie:Nástěnka správců/Zamknout | úroveň = polo | stránka = $1| důvod = $2}}', } }, 'cswikisource': { 'page': 'Wikizdroje:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Žádost o zablokování – $1' }, 'cswiktionary': { 'page': 'Wikislovník:Nástěnka správců', 'regex': '==\\s*Žádost o zablokování – $1\\s*==', 'rtext': '== Žádost o zablokování – $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Žádost o zablokování – $1' }, 'cywiki': { 'page': 'Wicipedia:Negesfwrdd gweinyddiaeth', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'dawiki': { 'page': 'Wikipedia:Anmodning om administratorassistance', 'regex': '{{\\s*[Aa]dministratorassistance\\s*\\|overskrift\\s*(1(\\s*)=|)XReport:\\s*$1\\s*}}', 'rtext': '{{Administratorassistance|overskrift=XReport: $1}}', 'section': '0', }, 'dewiki': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Bb]enutzer\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: [[Special:Contributions/$1|$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+XReport.version+')', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 <small><small>[[Benutzer:TenWhile6/XReport|XReport]]</small></small>'+XReport.signature, 'sectionname': 'Benutzer:$1', 'P': { 'page': 'Wikipedia:Vandalismusmeldung', 'regex': '==\\s*Seite \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Meldung: Seite [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+XReport.version+')', 'rtext': '== Seite [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+XReport.signature, 'sectionname': 'Seite $1', 'reason': ['Wiederkehrender Vandalismus', 'Wiederholtes Einstellen von Werbung', 'Wiederholte Missachtung der Belegpflicht'], }, 'reason': ['Unsinnige Bearbeitungen', 'Sperrumgehung'], 'D': { 'reasons': ['Vandalismus', (namespace % 2 == 1 ? 'Keine regelkonformen Diskussionsbeiträge': 'Kein Artikel'), 'Spam', 'Zweifelsfreie Irrelevanz', 'Verschieberest', 'Wunsch des Benutzers'], 'summary': '+SLA ([[Benutzer:TenWhile6/XReport|XReport]] '+XReport.version+')' }, 'RD': { 'page': `${today.getDay()}. ${XReport.monthsDe[today.getMonth()]} ${today.getFullYear()}`, 'summary': '+Löschantrag ([[Benutzer:TenWhile6/XReport|XReport]] '+XReport.version+')', } }, 'dewikibooks': { 'page': 'Wikibooks:Vandalensperrung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Vandale|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Benutzer:$1' }, 'dewikisource': { 'page': 'Wikisource:Skriptorium', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Benutzer:$1' }, 'dewikivoyage': { 'page': 'Wikivoyage:Lounge', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Benutzer:$1\\s*==', 'rtext': '== [[Benutzer:$1]] ==\nDen Administratoren gemeldet wird folgender Benutzer/IP: [[Spezial:Beiträge/$1|$1]]. &ndash; Grund: $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Benutzer:$1' }, 'dewiktionary': { 'page': 'Wiktionary:Vandalismusmeldung', 'regex': '==\\s*Benutzer:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== [[Benutzer:$1]] ==\n{{Benutzer|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Benutzer:$1' }, 'elwiki': { 'page': 'Βικιπαίδεια:Σημειωματάριο διαχειριστών', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n* {{User|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'enwiki': { 'page': 'Wikipedia:Administrator intervention against vandalism', 'regex': '{{\\s*[Ii][Pp]vandal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{vandal|$1}} &ndash; $2 '+XReport.linkS+XReport.signature }, 'enwikisource': { 'page': 'Wikisource:Administrators\' noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'enwiktionary': { 'page': 'Wiktionary:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} &ndash; $2 '+XReport.linkS+XReport.signature }, 'eowiki': { 'page': 'Vikipedio:Diskutejo/Administrejo', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'eswiki': { 'page': 'Wikipedia:Vandalismo en curso', 'regex': '==\\s*$1\\s*==', 'rtext': '{{subst:ReportevandalismoIP|1=$1|2=$2 '+XReport.linkS+'}}' }, 'etwiki': { 'page': 'Vikipeedia:Üldine arutelu', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'euwiki': { 'page': 'Wikipedia:Wikipedia:Txokoa/2025eko apirila', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'fawiki': { 'page': 'ویکی‌پدیا:تابلوی اعلانات مدیران', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'fiwiki': { 'page': 'Wikipedia:Ylläpitäjien ilmoitustaulu', 'regex': 'Käyttäjä:\\s*$1\\s*', 'rtext': '== Estopyyntö $1 ({{subst:LOCALDAY}}.{{subst:LOCALMONTH}}.{{subst:LOCALYEAR}}) ==\n<big>$1</big>\n*\'\'\'Toiminnot:\'\'\' [[Käyttäjä:$1|Käyttäjäsivu]] | [[Keskustelu käyttäjästä:$1|keskustelusivu]] | [[Toiminnot:Muokkaukset/$1|muokkaukset]] | [[Toiminnot:Estä/$1|\'\'\'estä\'\'\']]\n*\'\'\'Lisätiedot:\'\'\' $2 '+XReport.linkS+XReport.signature, }, 'frwiki': { 'page': 'Wikipédia:Vandalisme en cours', 'regex': '{{\\s*[Uu]+\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n\n* Auteur du vandalisme : {{u+|$1}}\n* Type de dégâts : $2\n\n<!-- Merci de ne pas modifier la ligne ci-dessous -->\n<small>[Via '+XReport.link+']</small> Message déposé par'+XReport.signature, 'sectionname': 'Demande de blocage de $1' }, 'frwikisource': { 'page': 'Wikisource:Requêtes aux administrateurs', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== Demande de blocage de $1 ===\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Demande de blocage de $1' }, 'frwiktionary': { 'page': `Wiktionnaire:Demandes aux administrateurs/${XReport.monthsFr[today.getMonth()]} ${today.getFullYear()}`, 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Demande de blocage de $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Demande de blocage de $1' }, 'hewiki': { 'page': 'ויקיפדיה:בקשות ממפעילים', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hewikisource': { 'page': 'ויקיטקסט:בקשות מבעלי הרשאות', 'section': 2, /* !NO REGEX! */ 'rtext': '* {{לחסום|$1}} – $2 --~~~~', }, 'hrwiki': { 'page': 'Wikipedija:Na pažnju administratorima', 'regex': '$1]]\\s*–\\s*vandalizam/spam\\s*==', 'rtext': "== [[Suradnik:$1]] – vandalizam/spam ==\n{{status prijave|NOVO}}\n* \'\'\'Razlog prijave:\'\'\' $2\n* \'\'\'Podnositelj prijave:\'\'\' [[Suradnik:{{subst:REVISIONUSER}}|]] "+XReport.linkS+"\n* \'\'\'Vrijeme:\'\'\' {{subst:#timel:j. xg Y. u H:i}}\n\n=== Komentari drugih suradnika ===\n\n=== Komentari administratora ===", 'sectionname': 'Suradnik:$1' }, 'huwiki': { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{user|$1}}. $2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', I: { 'page': 'Wikipédia:Adminisztrátorok üzenőfala', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]non\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\nSzeretnék neki blokkot: {{anon|$1}}. $2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', } }, 'idwiki': { 'page': 'Wikipedia:Intervensi pengurus terhadap vandalisme', 'regex': '$1 }}', 'rtext': '== [[User:$1]] ==\n* {{vandal-m|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'User:$1', }, 'iswiki': { 'page': 'Wikipedia:Potturinn', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'itwiki': { 'page': 'Wikipedia:Vandalismi in corso', 'regex': '{{\\s*[Vv]andalo\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{vandalo|$1}} $2 '+XReport.linkS+XReport.signature }, 'jawiki': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1}} - $2 `+XReport.linkS+XReport.signature, 'section': '999', 'I': { 'page': 'Wikipedia:管理者伝言板/投稿ブロック', 'regex': '{{\\s*[Uu]serAN\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*', 'rtext': `* {{UserAN|$1|t=IP2}} - $2 `+XReport.linkS+XReport.signature, 'section': '999', } }, 'kawiki': { 'page': 'ვიკიპედია:ფორუმი/დახმარება', /* noreport page - using Wikipedia:Forum/Help page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'kowiki': { 'page': '위키백과:사용자 관리 요청/'+today.getFullYear()+'년 제'+Math.ceil((((today - (new Date(today.getFullYear(), 0, 1))) / 86400000) + (new Date(today.getFullYear(), 0, 1)).getDay() + 1) / 7)+'주', 'regex': '{{\\s*사링\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n* {{사링|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': '$1' }, 'loginwiki': {}, /* stewards can edit */ 'lvwiki': { 'page': 'Vikipēdija:Administratoru ziņojumu dēlis', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'mediawikiwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Project:Village Pump', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[uU]serLinks\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{userLinks|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'metawiki': { 'page': 'Meta:Requests for help from a sysop or bureaucrat', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning User:$1 ==\n{{vandal|1=$1}} &mdash; \'\'\'Reasons:\'\'\' $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1', 'D': { 'reasons': ['G1: No meaningful content or history', 'G1: Vandalism', 'G1: Test', 'G7: Out of project scope', 'G8: Advertising or other inappropriate promotion', 'T1: Not a translation'] } }, 'mkwiki': { 'page': 'Википедија:Огласна табла за администратори', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'mlwiki': { 'page': 'വിക്കിപീഡിയ:കാര്യനിർവാഹകർക്കുള്ള നോട്ടീസ് ബോർഡ്', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'mrwiki': { 'page': 'विकिपीडिया:चावडी/प्रचालकांना निवेदन', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning $1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'mswiki': { 'page': 'Wikipedia:Campur tangan penyelia terhadap vandalisme', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* {{vandal|$1}} $2 '+XReport.linkS+XReport.signature, }, 'nlwiki': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/RegBlok', 'section': 2, 'regex': '===\\s*$1\\s*===', 'regeX': '|{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '=== $1 ===\n*{{lg|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', 'I': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/IPBlok', 'section': 2, 'regex': '{{\\s*[Ll]g\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{lg|$1}} $2 '+XReport.linkS+XReport.signature }, 'P': { 'page': 'Wikipedia:Verzoekpagina voor moderatoren/Beveiligen', 'section': 1, 'regex': '\\s*$1\\s*', 'rtext': '== [[$1]] ==\n$2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', }, }, 'nlwiktionary': { 'page': 'WikiWoordenboek:De Kroeg', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'nnwiki': { 'page': 'Wikipedia:Vaktmeistertenester', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'nowiki': { 'page': 'Wikipedia:Pågående vandalisme', 'section': 2, /* adding at the top of the section - included in source code directly */ 'regex': '\\s*/$1\\s*', 'rtext': '* [[Spesial:Bidrag/$1|$1]] &ndash; $2 '+XReport.linkS+XReport.signature }, 'plwiki': { 'page': 'Wikipedia:Prośby do administratorów', 'regex': '==\\s*Zgłoszenie w sprawie użytkownika $1\\s*==', 'regeX': '|{{\\s*[Ll]w\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Zgłoszenie w sprawie użytkownika $1 ==\n\n* {{lw|$1}}\n\n$2\n\nZgłasza: '+XReport.linkS+XReport.signature, 'sectionname': 'Zgłoszenie w sprawie użytkownika $1' }, 'plwikimedia': {}, /* wikimedia-wiki */ 'plwikisource': { 'page': 'Wikiźródła:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Proszę o blokadę dla $1', }, 'plwiktionary': { 'page': 'Wikisłownik:Prośby do administratorów', 'regex': '==\\s*Proszę o blokadę dla $1\\s*==', 'rtext': '== Proszę o blokadę dla $1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Proszę o blokadę dla $1', }, 'ptwiki': { 'page': 'Wikipédia:Pedidos/Notificações de vandalismo', 'regex': '{{\\s*[Uu]suário3\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:bloquear|$1|2=$2}}', }, 'rowiki': { 'page': 'Wikipedia:Reclamații', 'regex': '==\\s*Propunere de blocare a utilizatorului $1\\s*==', 'regeX': '|{{\\s*[Ss]esizare\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Propunere de blocare a utilizatorului $1 ==\n{{Sesizare|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Propunere de blocare a utilizatorului $1', 'section': 1, /*'P': { // 'page': 'Wikipedia:Cereri pentru protejarea paginilor', // 'section': 2, // 'regex': '=== \\s* $1\\s*===', // 'rtext': '=== [[$1]] ===\n$2 '+XReport.linkS+XReport.signature /},*/ }, 'ruwiki': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', 'regex': 'u/$1[^A-z1-9]', 'rtext': `{{subst:t:preload/ЗКАБ/subst| участник = $1 | пояснение = $2 ${XReport.linkS}}}`, 'P': { 'page': 'Википедия:Запросы_к_администраторам/Быстрые', /* !NO REGEX! */ 'rtext': `{{subst:t:preload/ЗКАБ/subst| страница = $1 | пояснение = $2 ${XReport.linkS}}}`, } }, 'sewikimedia': {}, /* wikimedia-wiki */ 'simplewiki': { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{Vandal|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, I: { 'page': 'Wikipedia:Vandalism in progress', 'regex': '{{\\s*[Ii][Pp][Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '*{{IPvandal|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, } }, 'skwiki': { 'page': 'Wikipédia:Nástenka správcov', 'regex': '==\\s*Hlásení vandalizmu: $1\\s*==', 'regeX': '|{{\\s*[Rr]edaktor\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Hlásení vandalizmu: $1 ==\n{{Redaktor|$1}}\n\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Hlásení vandalizmu: $1' }, 'slwiki': { 'page': 'Wikipedija:Prošnje za administratorsko pomoč', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== User:$1 ==\n{{User|$1}} $2 '+XReport.linkS+XReport.signature, 'sectionname': 'User:$1' }, 'sourceswiki': { 'page': 'Wikisource:Vandalism in progress', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'section': '0', 'rtext': '== $1 ==\n* {{User|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': '$1' }, 'specieswiki': { 'page': 'Wikispecies:Administrators\' Noticeboard', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'svwiki': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Aa]nv-data\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{Anv-data|$1}}. $2 '+XReport.linkS+XReport.signature, 'section': 2, 'I': { 'page': 'Wikipedia:Begäran om åtgärder', 'regex': '{{\\s*[Ii]p-adress\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '* Please block {{IP-adress|$1}}. $2 '+XReport.linkS+XReport.signature, 'section': 2, } }, 'svwiktionary': { 'page': 'Wiktionary:Bybrunnen', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'tawiki': { 'page': 'விக்கிப்பீடியா:நிருவாகிகளுக்கான அறிவிப்புப்பலகை', 'regex': '{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[User:$1]] ==\n{{User|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'testwiki': { 'page': 'Wikipedia:Village pump', /* no report page - using most viewed "forum" page */ 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{vandal|$1}}\n$2[[User:TenWhile6| ]]'+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1', 'P': { 'page': 'Wikipedia:Village pump', 'regex': '==\\s*Page \\s*$1\\s*==', 'regeX': '|{{\\s*[Aa]rtikel\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'summary': 'Report: Page [[$1]] ([[Benutzer:TenWhile6/XReport|XReport]] '+XReport.version+')', 'rtext': '== Page [[$1]] ==\n{{Artikel|$1}} $2 <small>[[Benutzer:TenWhile6/XReport|XReport]]</small>'+XReport.signature, 'sectionname': 'Page $1', }, }, 'tewiki': { 'page': 'వికీపీడియా:నిర్వాహకుల నోటీసు బోర్డు', 'regex': '==\\s*Report concerning User:$1\\s*==', 'rtext': '== Report concerning User:$1 ==\n[[Special:Contributions/$1\|$1]] &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning User:$1' }, 'thwiki': { 'page': 'วิกิพีเดีย:รายชื่อการก่อกวน', /* !NO REGEX! */ 'rtext': '* {{ก่อกวน|$1}} $2. '+XReport.linkS+XReport.signature, }, 'trwiki': { 'page': 'Vikipedi:Kullanıcı engelleme talepleri', 'regex': `==\\s*${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1\\s*==`, 'rtext': `== ${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1 ==\n\n{{Vandal|$1}}\n* \'\'\'Neden:\'\'\' &ndash; $2 `+XReport.linkS+XReport.signature, 'sectionname': `${today.getDate()}-${today.getMonth()+1}-${today.getFullYear()} $1` }, 'ukwiki': { /* it's a GS-wiki, but explicitly opted-out from that in XReport. */ 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{user|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', 'section': '0', 'I': { 'page': 'Вікіпедія:Запити до адміністраторів', 'regex': '==\\s*$1\\s*==', 'regeX': '|{{\\s*[Ii][Pp]\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== $1 ==\n{{ip|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', 'section': '0' }, 'P': { 'page': 'Вікіпедія:Захист сторінок', /* !NO REGEX! */ 'rtext': '== [[$1]] ==\n$2 '+XReport.linkS+XReport.signature, 'sectionname': '$1', 'section': '0' } }, 'urwiki': { 'page': 'ویکیپیڈیا:دیوان_خاص', 'regex': '==\\s*User:$1\\s*==', 'rtext': '== [[صارف:$9]] پر پابندئی لگائیں ==\n* {{user|$1}} $2 '+XReport.linkS+XReport.signature, }, 'viwiki': { 'page': 'Wikipedia:Tin nhắn cho bảo quản viên', 'regex': '{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Báo cáo phá hoại ==\n*{{vandal|$1}} &ndash; $2 '+XReport.linkS+XReport.signature, }, 'wikidatawiki': { 'page': 'Wikidata:Administrators\' noticeboard', 'regex': '==\\s*Report concerning User:$1\\s*==', 'regeX': '|{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '{{subst:VandalReport|$1|$2 '+XReport.linkS+'}}', 'sectionname': 'Report concerning User:$1', 'P': { 'page': 'Wikidata:Administrators\' noticeboard', 'rtext': '== Protection request for [[$1]] ==\n\nPlease semi-protect [[$1]]. \'\'\'Reason:\'\'\' $2 '+XReport.linkS+XReport.signature, } }, 'zh_yuewiki': { 'page': 'Wikipedia:管理員留言板', 'regex': '==\\s*Report concerning [[Special:Contributions/$1|$1]]\\s*==', 'regeX': '|{{\\s*[Uu]ser\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}', 'rtext': '== Report concerning [[Special:Contributions/$1|$1]] ==\n\n* {{user|$1}}\n$2 '+XReport.linkS+XReport.signature, 'sectionname': 'Report concerning $1' }, 'zhwiki': { 'page': 'Wikipedia:当前的破坏', 'regex': `{{\\s*[Vv]andal\\s*\\|\\s*(1(\\s*)=|)\\s*$1\\s*}}`, 'rtext': `=== $1 ===\n* \'\'\'{{vandal|1=$1}}\'\'\'\n* $2 `+XReport.linkS+'\n* 发现人:'+XReport.signature, 'sectionname': '$1' }, }; function DBdata(modus, status, key) { DBx = modus == true ? 'SRG' : DB; DBx = modus == 'GSR' ? 'GSR' : DBx; if (status == 'I') { if ('I' in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','reasons'].includes(key)) { return ''; } else { sendError(`1. Error: DBdata() at ${DBx} status ${status} key ${key}`); } } } else { status = 'U'; } } if (status == 'U') { if (WikiData[DBx][key]) { return WikiData[DBx][key]; } else { if (key == 'reason') { return ['Vandalism', 'Long-term abuse']; } else if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } else { sendError(`2. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } } else if (status == 'P' && WikiData[DBx][status][key]) { return WikiData[DB][status][key]; } else if (status == 'P' && ['regex','regeX','section','sectionname','summary','reason'].includes(key)) { if (key == 'reason') { return ['Persistent vandalism']; } else { return ''; } } else if (status == 'H') { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } else { if (['regex','regeX','section','sectionname','summary','rtext','reasons'].includes(key)) { return ''; } } } else if (status == 'D') { if (DBx in WikiData) { if (status in WikiData[DBx]) { if (WikiData[DBx][status][key]) { return WikiData[DBx][status][key]; } } } if (['summary','reasons','rtext'].includes(key)) { return ''; } } else { sendError(`3. Error: DBdata() at ${DBx} status ${status} in ${key}`); } } /* report users */ function getUserDialog() { function CreateUserDialog(config){ CreateUserDialog.parent.call(this, config); } OO.inheritClass(CreateUserDialog, OO.ui.ProcessDialog); CreateUserDialog.static.name = 'CreateUserDialog'; CreateUserDialog.static.title = XReport.title; CreateUserDialog.prototype.initialize = function() { var self = this; CreateUserDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); bigusernamefield.setErrors([]); bigusernamefield.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; var GSR = false; notEnabled = new OO.ui.MessageWidget({type: 'notice', 'label': trnslt('error-local')}); languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(XReport.translateUI)}); if (!(DB in WikiData)){ GSR = true; } var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: GSR ? 'GSR' : false, label: GSR ? 'GS/R' : trnslt('local-button'), disabled: GSR ? false : ('page' in WikiData[DB] ? false : true), /*icon: GSR ? undefined : 'newWindow'*/}).on('click', function() {multiuserField.toggle(false);/*hideInput.setDisabled(true);hideInput.setSelected(false);*/hideField.toggle(false);localReasonCheckboxes.toggle(true);globalReasonCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: true, label: trnslt('global-button')}).on('click', function() {multiuserField.toggle(true);/*hideInput.setDisabled(false);*/hideField.toggle(true);localReasonCheckboxes.toggle(false);globalReasonCheckboxes.toggle(true);self.updateSize();/*usernameinputs.push(new mw.widgets.UserInputWidget({align: 'top', /*required: true, validate: 'non-empty', value:RelevantUserName*}));*/}) ] }); typeInput.selectItemByLabel(GSR ? 'GS/R' : ('page' in WikiData[DB] ? trnslt('local-button') : trnslt('global-button'))); /*var usernameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName});*/ usernameinputs = new OO.ui.TagMultiselectWidget({ allowArbitrary: true, inputPosition: 'outline', tagLimit: 20, placeholder: trnslt('addusers'), } ); usernameinputs.on("change", function () { self.updateSize(); }); usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); var hideInput = new OO.ui.CheckboxInputWidget({align: 'top', /*disabled: GSR ? true : ('page' in WikiData[DB] ? true : false),*/ selected: false}); multiuserField = new OO.ui.FieldsetLayout({content: [usernameinputs]}); hideField = new OO.ui.FieldLayout(hideInput,{label: trnslt('hide-username'), align: 'inline'}); bigusernamefield = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ usernameInput, multiuserField, hideField, ] }) ] }),{ label: trnslt('username') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: trnslt('o-reason'), /*required: true,*/ rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'U', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); var globalReportReasons = DBdata(true, 'U', 'reason'); var globalCheckboxes = []; var globalCheckboxesEach = []; for (var Gxxx in globalReportReasons) { globalCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Grrr in globalCheckboxesEach){ globalCheckboxes.push(new OO.ui.FieldLayout(globalCheckboxesEach[Grrr],{label: globalReportReasons[Grrr], align: 'inline'})); } globalReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: globalCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var username = usernameInput.getValue(); var usernames = usernameinputs.getValue(); clearError(); if (!username){ bigusernamefield.setErrors([trnslt('error-user')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var modus = typeInput.findSelectedItem().getData(); var hidden = hideInput.isSelected(); var xapi = modus ? metaapi : (modus == 'GSR' ? metaapi : api); var statusX = mw.util.isIPAddress(username, true) ? 'I' : (mw.util.isTemporaryUser(username, true) ? 'I' : 'U'); var status = statusX == 'U' ? (hidden ? 'H' : 'U') : statusX; var regex = DBdata(modus, status, 'regex').replaceAll('$1', username) + DBdata(modus, status, 'regeX').replaceAll('$1', username); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }).then(function(data){ if (data.error){ sendError(`Error: getUserDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getUserDialog() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ bigusernamefield.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } var finalReason = ''; var rReasons = modus == 'GSR' ? localReportReasons : (modus == true ? globalReportReasons : localReportReasons); var cEach = modus == 'GSR' ? localCheckboxesEach : (modus == true ? globalCheckboxesEach : localCheckboxesEach); for (let i = 0;i<(rReasons).length;i++) { if (cEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + rReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${modus ? '//meta.wikipedia.org' : (modus == 'GSR' ? '//meta.wikipedia.org' : Server)}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replaceAll('$1', username).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); finalReason = finalReason.charAt(0) == '' ? finalReason.substr(1) : finalReason; uSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary') : uSummary; uSummary = uSummary.replaceAll('$1', username); var reporttext; if (modus && (usernames.length > 0)) { reporttext = '\n\n=== Global mass(b)lock ===\n{{Status}}\n{{MultiLock|'+(hidden ? 'hidename=yes|' : '')+username; for (var un in usernames) { reporttext += `|${usernames[un]}`; } reporttext += '}}\n$2 '.replaceAll('$2', finalReason)+XReport.linkS+XReport.signature; uSummary = 'Reporting multiple users '+XReport.linkK; } else { var importrptext = DBdata(modus, status, 'rtext'); if (!(['rowiki','dawiki'].includes(DB))) { reporttext = (importrptext.charAt(0) == '*' ? '\n' : '\n\n')+importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`).replace('9$', username); } else { reporttext = importrptext.replaceAll('$1', username).replaceAll('$2', finalReason).replace('$3', `${iwPrefix}:`); } } if (DBdata(modus, status, 'section')){ xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'sections' }).done(function(response) { if (DB == 'jawiki' && modus == false) { const d = new Date(); let subtract; const multiplier = Math.ceil(d.getDate() / 5); /* 1 to 7 */ let lastDay, startDay; if (multiplier < 6) { lastDay = 5 * multiplier; /* 5, 10, 15, 20, 25 */ startDay = lastDay - 4; /* 1, 6, 11, 16, 21 */ } else { lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0)(); /* 28-31 */ startDay = 26; } var result = `${d.getFullYear()}年${d.getMonth() + 1}月${startDay}日 - ${lastDay}日新規報告`; for (var sect in response.parse.sections) { if (response.parse.sections[sect].line == result) {sectionnum = parseInt(sect)+1;break} } } else { sectionnum = DBdata(modus, status, 'section'); sectionnum = sectionnum == -1 ? response.parse.sections.length - 1 : sectionnum; } xapi.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: sectionnum }).done(function(result) { var wikitext; if (DB == 'nowiki') { wikitext = result.parse.wikitext['*'].replace(`== ${today.getFullYear()} ==`, `== ${today.getFullYear()} ==\n` + reporttext); } else if (DB == 'rowiki') { wikitext = `${reporttext}\n\n${result.parse.wikitext['*']}`; } else if (DB == 'dawiki') { wikitext = result.parse.wikitext['*'].replace('<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->', `${reporttext}\n<!-- INDSÆT ALLE ANMODNINGER OVENFOR -->`); xapi.postWithEditToken({ action: 'edit', title: 'Wikipedia:Anmodning om administratorassistance/XReport: '+username, text: `{{Bruger|${username}}} &ndash; ${finalReason} ${XReport.linkS} ${signature}\n\n[[Kategori:Anmodninger om administratorassistance|{{SUBPAGENAME}}]]`, summary: uSummary, }); } else { wikitext = result.parse.wikitext['*'] + reporttext; } xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: sectionnum, text: wikitext, summary: uSummary, notminor: true, nocreate: true }).then(function(data) { success(); }).catch(function(errortype) { errorResult(errortype); }); }); }); } else { xapi.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: uSummary, appendtext: reporttext, nocreate: true, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'], icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton, ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget(XReport.documentation), new OO.ui.ButtonWidget(XReport.feedback), /*new OO.ui.ButtonWidget({XReport.settings}),*/ ] }), notEnabled, new OO.ui.FieldLayout(typeInput,{label: trnslt('type')}), bigusernamefield, globalReasonCheckboxes, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); var page2feedback = new OO.ui.ButtonWidget(XReport.feedbackP2); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(XReport.mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateUserDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateUserDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateUserDialog({ size: 'medium' }); } function openUserDialog(){ if (!dialog){ dialog = getUserDialog(); windowManager = new OO.ui.WindowManager(); $('body').append(windowManager.$element); windowManager.addWindows([dialog]); multiuserField.toggle(false); hideField.toggle(false); notEnabled.toggle(false); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in WikiData) { if (!('page' in WikiData[DB])) { localReasonCheckboxes.toggle(false); globalReasonCheckboxes.toggle(true); multiuserField.toggle(true); hideField.toggle(true); notEnabled.toggle(true); } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } else { localReasonCheckboxes.toggle(true); globalReasonCheckboxes.toggle(false); } } windowManager.openWindow(dialog); } /* report pages */ function getPageDialog() { function CreatePageDialog(config){ CreatePageDialog.parent.call(this, config); } OO.inheritClass(CreatePageDialog, OO.ui.ProcessDialog); CreatePageDialog.static.name = 'CreatePageDialog'; CreatePageDialog.static.title = XReport.title; CreatePageDialog.prototype.initialize = function() { var self = this; CreatePageDialog.parent.prototype.initialize.call(this); clearError = function() { reasonInputField.setErrors([]); pagenameInputField.setErrors([]); pagenameInputField.setWarnings([]); self.updateSize(); }; this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(XReport.translateUI)}); var GSR = false; if (!(DB in WikiData)){ GSR = true; } var pagenameInput = new OO.ui.TextInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantPageName}); pagenameInputField = new OO.ui.FieldLayout( new OO.ui.Widget({ content: [ new OO.ui.FieldsetLayout({ content: [ pagenameInput, ] }) ] }),{ label: trnslt('pagename') }); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, autosize: true}); var reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var localReportReasons = DBdata(GSR ? 'GSR' : false, 'P', 'reason'); var localCheckboxes = []; var localCheckboxesEach = []; for (var Lxxx in localReportReasons) { localCheckboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var Lrrr in localCheckboxesEach){ localCheckboxes.push(new OO.ui.FieldLayout(localCheckboxesEach[Lrrr],{label: localReportReasons[Lrrr], align: 'inline'})); } localReasonCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: localCheckboxes})]}),{label: trnslt('reason')}); mainbuttonfunction = function() { mainbutton.setDisabled(true); var pagename = pagenameInput.getValue(); clearError(); if (!pagename) { pagenameInputField.setErrors([trnslt('error-page')]); self.updateSize(); mainbutton.setDisabled(false); return; } var reason = reasonInput.getValue(); var finalReason = ''; for (let i = 0;i<(localReportReasons).length;i++) { if (localCheckboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + localReportReasons[i]; } } if (reason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + reason; } if (finalReason == ''){ reasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var modus = false; var xapi = modus ? metaapi : api; var status = 'P'; var Vregex = DBdata(modus, status, 'regex').replace('$1', pagename) + DBdata(modus, status, 'regeX').replace('$1', pagename); xapi.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: DBdata(modus, status, 'page'), }) .then(function(data){ if (data.error){ sendError(`Error: getPageDialog() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: getPageDialog()) at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(Vregex, 'g')) !== null && Vregex !== ''){ pagenameInputField.setWarnings([trnslt('error-requested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else if (pagename.startsWith('Spezial:') || pagename.startsWith('Special:')){ pagenameInputField.setErrors(['error-specialpage']); self.updateSize(); mainbutton.setDisabled(false); return; } else { clearError(); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); var link = `→ <a href="${Server}/wiki/${DBdata(modus, status, 'page')}#${DBdata(modus, status, 'sectionname').replace('$1', pagename).replaceAll(' ','_')}">${DBdata(modus, status, 'page')}</a>`; newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success')+'<br>'+link)]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; reason = reason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } pagename = pagename.replace(/_/g, ' '); rText = DBdata(modus, status, 'rtext'); pSummary = DBdata(modus, status, 'summary') !== '' ? DBdata(modus, status, 'summary').replace('$1', pagename) : pSummary.replace('$1', pagename); var reporttext = (rText.charAt(0) == '*' ? '\n' : '\n\n')+rText.replace('$1', pagename).replace('$1', pagename).replace('$2', finalReason); if ('section' in WikiData[DB][status]){ api.get({ action: 'parse', page: DBdata(modus, status, 'page'), prop: 'wikitext', section: DBdata(modus, status, 'section') }).done(function(result){ var wikitext = result.parse.wikitext['*'] + reporttext; api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), section: DBdata(modus, status, 'section'), text: wikitext, summary: pSummary, notminor: true, nocreate: true }).then(function() { success(); }).catch(function(errortype) { errorResult(errortype); }); }); } else { api.postWithEditToken({ action: 'edit', title: DBdata(modus, status, 'page'), summary: pSummary, appendtext: reporttext, }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); self.updateSize(); } } }); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'], icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left', icon:'close'}).on('click', function() { self.close(); clearError(); }), mainbutton ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget(XReport.documentation), new OO.ui.ButtonWidget(XReport.feedback), /*new OO.ui.ButtonWidget({XReport.settings}),*/ ] }), pagenameInputField, localReasonCheckboxes, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget(XReport.feedbackP2); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(XReport.mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreatePageDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreatePageDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreatePageDialog({ size: 'medium' }); } function openPageDialog(){ if (!pageDialog){ pageDialog = getPageDialog(); pageWindowManager = new OO.ui.WindowManager(); $('body').append(pageWindowManager.$element); pageWindowManager.addWindows([pageDialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); } pageWindowManager.openWindow(pageDialog); } /* (speedy) deletions */ function getQDDialog(){ function CreateQDDialog(config){ CreateQDDialog.parent.call(this, config); } OO.inheritClass(CreateQDDialog, OO.ui.ProcessDialog); CreateQDDialog.static.name = 'CreateQDDialog'; CreateQDDialog.static.title = XReport.title; CreateQDDialog.prototype.initialize = function() { var self = this; CreateQDDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(XReport.translateUI)}); GSR = false; var status = 'D'; if (!(DB in WikiData)){ GSR = true; } else { deleteReasons = DBdata('x', status, 'reasons') != '' ? DBdata('x', status, 'reasons') : deleteReasons; } var checkboxes = []; var checkboxesEach = []; /*var typeInput = new OO.ui.ButtonSelectWidget({ items: [ new OO.ui.ButtonOptionWidget({data: 'speedy', label: trnslt('SDtitle')}).on('click', function() {speedyDelCheckboxes.toggle(true);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'regular', label: 'Löschantrag'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), new OO.ui.ButtonOptionWidget({data: 'looksuseless', label: '{{Looks useless}}'}).on('click', function() {speedyDelCheckboxes.toggle(false);self.updateSize();}), ] }); typeInput.selectItemByLabel(trnslt('SDtitle')); var typeInputField = new OO.ui.FieldLayout(typeInput,{label: trnslt('type')});*/ var gsrCheck = new OO.ui.CheckboxInputWidget({align: 'top', selected: false}); gsrInput = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: [new OO.ui.FieldLayout(gsrCheck,{label: trnslt('SDgsr'), align: 'inline'})]})]})); for (var xxx in deleteReasons) { checkboxesEach.push(new OO.ui.CheckboxInputWidget({align: 'top', selected: false})); } for (var rrr in checkboxesEach){ checkboxes.push(new OO.ui.FieldLayout(checkboxesEach[rrr],{label: deleteReasons[rrr], align: 'inline'})); } var speedyDelCheckboxes = new OO.ui.FieldLayout(new OO.ui.Widget({content: [new OO.ui.FieldsetLayout({content: checkboxes})]}),{label: trnslt('reason')}); var QDreasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', rows: 3, placeholder:trnslt('o-reason'), autosize: true}); var QDreasonInputField = new OO.ui.FieldLayout(QDreasonInput,{label: trnslt('c-reason')}); var mainbuttonfunction = function() { mainbutton.setDisabled(true); var finalReason = ''; for (let i = 0;i<deleteReasons.length;i++) { if (checkboxesEach[i].isSelected()) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + deleteReasons[i]; } } var manualReason = QDreasonInput.getValue(); if (manualReason) { if (finalReason != '') { finalReason = finalReason + '. '; } finalReason = finalReason + manualReason; } if (finalReason == ''){ QDreasonInputField.setErrors([trnslt('error-reason')]); self.updateSize(); mainbutton.setDisabled(false); return; } var gsr = gsrCheck.isSelected(); var regex = '{{[Ss][Ll][Aa]|{{[Ll]öschen|{{[Dd]elete'; api.get({ action: 'query', prop: 'revisions', formatversion: 2, rvprop: 'content', rvslots: 'main', rvlimit: 1, titles: curPageName, }).then(function(data) { if (data.error) { sendError(`Error: quickdeletion() at ${DB}, action: api.get`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions == undefined){ sendError(`Error: quickdeletion() at ${DB}, action: api.get, error: undefined`); mainbutton.setDisabled(false); return; } else if (data.query.pages[0].revisions[0].slots.main.content.match(new RegExp(regex,'g')) !== null && regex !== ''){ QDreasonInputField.setErrors([trnslt('error-SDrequested')]); self.updateSize(); mainbutton.setDisabled(false); return; } else { QDreasonInputField.setErrors([]); self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { newProgressWidget.toggle(false); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success-SD'))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; var errorResult = function(errortype) { newProgressWidget.toggle(false); newProgressField.setErrors(['Error: '+errortype]); self.updateSize(); closeButton.setDisabled(false); page2feedback.setDisabled(false); }; finalReason = finalReason.replace(/(.*)--~~~~/g, '$1').replace(/(.*)~~~~/g, '$1'); if (finalReason.charAt(0) == '') { finalReason = finalReason.substr(1); } var wikitext = `<noinclude>{{${['mediawikiwiki', 'commonswiki', 'enwikisource'].includes(DB) ? 'speedy' : 'delete'}|${finalReason} <small>${DB == 'dewiki' ? '[[Benutzer:TenWhile6/XReport|XReport]]' + XReport.signature : XReport.link}</small>}}</noinclude>\n`+data.query.pages[0].revisions[0].slots.main.content; var datasummary = DBdata('x', status, 'summary'); api.postWithEditToken({ action: 'edit', title: curPageName, text: wikitext, summary: datasummary == '' ? dSummary : datasummary, notminor: true, nocreate: true }).then(function(data){ if (GSR && gsr) { metaapi.postWithEditToken({ action: 'edit', title: DBdata('GSR', status, 'page'), summary: dSummary, appendtext: DBdata('GSR', status, 'rtext').replace('$3', `${iwPrefix}:`).replace('$2', finalReason).replace('$1', curPageName), }).then(function(data){ success(); }).catch(function(errortype) { errorResult(errortype); }); } else { success(); } }).catch(function(errortype) { errorResult(errortype); }); } }); self.updateSize(); }; mainbutton = new OO.ui.ButtonWidget({label: trnslt('SDtitle'), flags: ['primary', 'progressive'], icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on('click', function() { self.close(); QDreasonInputField.setErrors([]); }), mainbutton ], }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget(XReport.documentation), new OO.ui.ButtonWidget(XReport.feedback), /*new OO.ui.ButtonWidget({XReport.settings}),*/ ] }), /*typeInputField,*/ gsrInput, speedyDelCheckboxes, QDreasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]}),{align: 'top'}), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on('click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget(XReport.feedbackP2); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('SDprocess')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(XReport.mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), /*$('<div />',{id: 'settings', style: 'display:none'}).append(settingsForm.$element)*/ ); this.$body.append(this.panelLayout.$element); }; CreateQDDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateQDDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateQDDialog({ size: 'medium' }); } function openQDDialog(){ if (!QDdialog){ QDdialog = getQDDialog(); QDwindowManager = new OO.ui.WindowManager(); $('body').append(QDwindowManager.$element); QDwindowManager.addWindows([QDdialog]); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); gsrInput.toggle(GSR); } QDwindowManager.openWindow(QDdialog); } /* request oversight */ function getOSRDialog(){ function CreateOSRDialog(config){ CreateOSRDialog.parent.call(this, config); } OO.inheritClass(CreateOSRDialog, OO.ui.ProcessDialog); CreateOSRDialog.static.name = 'CreateOSRDialog'; CreateOSRDialog.static.title = XReport.OSRequester.name; CreateOSRDialog.prototype.initialize = function() { var self = this; CreateOSRDialog.parent.prototype.initialize.call(this); this.curPageID = 'page-1'; noOSinfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet('x')}); if (DB in XReport.OSRequester.data) { if (XReport.OSRequester.data[DB].includes('@')) { noOSinfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(`Sending a Wikimail is <u>not possible</u> on this wiki.<br>Please send a mail to <a href="mailto:${XReport.OSRequester.data[DB]}?subject=Oversight request&body=URL: ${window.location} – Best regards, ${XReport.OSRequester.requesterusername}">${XReport.OSRequester.data[DB]}</a>.`)}); } } languageInfo = new OO.ui.MessageWidget({type: 'notice', 'label': new OO.ui.HtmlSnippet(XReport.translateUI)}); var usernameInput = new mw.widgets.UserInputWidget({align: 'top', required: true, validate: 'non-empty', value:RelevantUserName}); usernameInputField = new OO.ui.FieldLayout(usernameInput,{label: trnslt('username')}); var urlInput = new OO.ui.MultilineTextInputWidget({align: 'top', required: true, value:window.location, rows: 3, autosize: true}); urlInputField = new OO.ui.FieldLayout(urlInput,{label: 'URL'}); var reasonInput = new OO.ui.MultilineTextInputWidget({align: 'top', placeholder: trnslt('o-reason'), /*required: true,*/ disabled:true, rows: 3, autosize: true}); reasonInputField = new OO.ui.FieldLayout(reasonInput,{label: trnslt('c-reason')}); var dropDown = new OO.ui.DropdownWidget( { label: trnslt('OSR-choose'), menu: { items: [ new OO.ui.MenuOptionWidget( { data: 'OS#1', label: DB == 'dewiki' & lang == 'de' ? 'OS#1: Nicht-öffentliche persönliche Informationen' : 'OS#1: Non-public personal information', } ), new OO.ui.MenuOptionWidget( { data: 'OS#2', label: DB == 'dewiki' & lang == 'de' ? 'OS#2: potenziell verleumderische Informationen': 'OS#2: Potentially libelous information', } ), new OO.ui.MenuOptionWidget( { data: 'OS#4', label: DB == 'dewiki' & lang == 'de' ? 'OS#4: Benutzername, der einen schwerwiegenden Angriff darstellt' : 'OS#4: Blatant attack username', } ), ] } } ), itemSelected = function(){ if (dropDown.getMenu().getVisibleItems()[0].selected) {usernameInputField.toggle(false);urlInputField.toggle(true);} else if (dropDown.getMenu().getVisibleItems()[1].selected) {usernameInputField.toggle(false);urlInputField.toggle(true);} else if (dropDown.getMenu().getVisibleItems()[2].selected) {usernameInputField.toggle(true);urlInputField.toggle(false);} reasonInput.setDisabled(false); mainButton.setDisabled(false); self.updateSize(); }; dropDown.getMenu().on('select', itemSelected); mainbuttonfunction = function() { var URL = urlInput.getValue(); urlInputField.setErrors([]); usernameInputField.setErrors([]); if (dropDown.getMenu().getVisibleItems()[0].selected) { OS = dropDown.getMenu().getVisibleItems()[0].data; OSText = dropDown.getMenu().getVisibleItems()[0].label; if (!URL){ urlInputField.setErrors([trnslt('error-url')]); self.updateSize(); return; } } else if (dropDown.getMenu().getVisibleItems()[1].selected) { OS = dropDown.getMenu().getVisibleItems()[1].data; OSText = dropDown.getMenu().getVisibleItems()[1].label; if (!URL){ urlInputField.setErrors([trnslt('error-url')]); self.updateSize(); return; } } else if (dropDown.getMenu().getVisibleItems()[2].selected) { OS = dropDown.getMenu().getVisibleItems()[2].data; OSText = dropDown.getMenu().getVisibleItems()[2].label; var username = usernameInput.getValue(); if (!username){ usernameInputField.setErrors([trnslt('error-user')]); self.updateSize(); return; } else { URL = 'https:'+Server+'/wiki/Special:Contributions/' + username.replace(/ /g, '_'); } } var reason = reasonInput.getValue(); reason = reason.replace( /(.*)--~~~~/g, '$1'); reason = reason.replace( /(.*)~~~~/g, '$1'); if (reason.charAt(0) == ''){ reason = reason.substr(1); } self.switchTo('page-2'); self.updateSize(); closeButton.setDisabled(true); var success = function() { self.updateSize(); newProgressField.setSuccess([new OO.ui.HtmlSnippet(trnslt('success-sent')+' → '+(DB in XReport.OSRequester.data ? trnslt('local-OS') : 'Stewards')+(XReport.OSRequester.ccme ? `<br>+ ${trnslt('success-sent-copy')}`: ''))]); closeButton.setDisabled(false); page2feedback.setDisabled(false); self.updateSize(); timeout = function() { window.location.reload(); self.close(); }; setTimeout(timeout, 10000); }; xapi = DB in XReport.OSRequester.data ? api : metaapi; xapi.postWithEditToken({ action: 'emailuser', target: OSDBdata(), subject: OS, text: 'Oversight-Request per '+OSText+'.\n'+URL+(reason != '' ? '\n'+reason+'\n\n' : '\n\n')+(DB == 'dewiki' ? 'Freundliche Grüße' : 'Best regards')+'\n'+XReport.OSRequester.requesterusername, format: 'json', ccme: XReport.OSRequester.ccme, }).then(function(data){ if (data.error && data.error.info){ mw.notify(`Error: OSRequester at ${DB}, action: postWithEditToken`,{'type':'error','title':XReport.OSRequester.name,autoHide: false}); } else { success(); } }); self.updateSize(); }; mainButton = new OO.ui.ButtonWidget({label: trnslt('button'), flags: ['primary', 'progressive'], icon: 'check'}).on('click', mainbuttonfunction); var page1Buttons = new OO.ui.HorizontalLayout({ items: [ new OO.ui.ButtonWidget({label: trnslt('close'), align: 'left' , icon:'close'}).on( 'click', function() { self.close(); }), mainButton, ] }); var page1Form = new OO.ui.FieldsetLayout({ items: [ new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget(XReport.OSRequester.documentation), new OO.ui.ButtonWidget(XReport.OSRequester.feedback), /*new OO.ui.ButtonWidget({XReport.settings}),*/ ] }), dropDown, usernameInputField, urlInputField, reasonInputField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page1Buttons]})), languageInfo ] }); var closeButton = new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on( 'click', function() { window.location.reload(); self.close(); }); page2feedback = new OO.ui.ButtonWidget(XReport.OSRequester.feedbackP2); var page2Buttons = new OO.ui.HorizontalLayout({ items: [closeButton,page2feedback] }); page3Form = new OO.ui.FieldsetLayout({ items: [new OO.ui.ButtonGroupWidget({ items: [ new OO.ui.ButtonWidget(XReport.OSRequester.documentation), new OO.ui.ButtonWidget(XReport.OSRequester.feedback), /*new OO.ui.ButtonWidget({XReport.settings}),*/ ] }),noOSinfo,new OO.ui.ButtonWidget({label: trnslt('close'), flags: ['primary','progressive'], icon:'close'}).on( 'click', function() { self.close() })] }); newProgressText = new OO.ui.HtmlSnippet(`<br><b>${trnslt('process')}</b>`); newProgressWidget = new OO.ui.Widget({content: [newProgressText]}); newProgressField = new OO.ui.FieldLayout(newProgressWidget,{align: 'top'}); var page2Form = new OO.ui.FieldsetLayout({ items: [ newProgressField, new OO.ui.FieldLayout(new OO.ui.Widget({content: [page2Buttons]}),{align: 'top'}) ] }); this.panelLayout = new OO.ui.PanelLayout({padded: true, expanded: false}); this.panelLayout.$element.append( $('<div />').append(XReport.mwh), $('<div />',{id: 'page-1'}).append(page1Form.$element), $('<div />',{id: 'page-2', style: 'display:none'}).append(page2Form.$element), $('<div />',{id: 'page-3', style: 'display:none'}).append(page3Form.$element) ); this.$body.append(this.panelLayout.$element); }; CreateOSRDialog.prototype.getBodyHeight = function() { return this.panelLayout.$element.outerHeight(true); }; CreateOSRDialog.prototype.switchTo = function(nextPageID){ $('#' + this.curPageID).hide(); this.curPageID = nextPageID; $('#' + nextPageID).show(); this.updateSize(); }; return new CreateOSRDialog({ size: 'medium' }); } function openOSRDialog(){ if (!OSRdialog){ OSRdialog = getOSRDialog(); OSRwindowManager = new OO.ui.WindowManager(); $('body').append(OSRwindowManager.$element); OSRwindowManager.addWindows([OSRdialog]); usernameInputField.toggle(false); urlInputField.toggle(false); mainButton.setDisabled(true); lang ? languageInfo.toggle(false) : languageInfo.toggle(true); if (DB in XReport.OSRequester.data) { if (XReport.OSRequester.data[DB].includes('@')) { OSRdialog.switchTo('page-3'); } } } OSRwindowManager.openWindow(OSRdialog); } /* portlet links */ if (typeof XReportConfig !== 'undefined') { if (XReportConfig == true) { $(mw.util.addPortletLink(blocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); $(mw.util.addPortletLink(clocation,'#',trnslt('title'),'ca-reportuser',trnslt('description'),null,'#ca-reportuser')).click(function(e) { e.preventDefault(); openUserDialog(); }); if (DB in WikiData) { if ('P' in WikiData[DB]) { $(mw.util.addPortletLink(blocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); $(mw.util.addPortletLink(clocation,'#',trnslt('Ptitle'),'ca-reportpage',trnslt('Pdescription'),null,'#ca-reportpage')).click(function(e) { e.preventDefault(); openPageDialog(); }); } } if (namespace >= 0 && mw.config.get('wgArticleId') != 0 && !(['ptwiki', 'hrwiki', 'kowiki'].includes(DB))){ $(mw.util.addPortletLink(blocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); $(mw.util.addPortletLink(clocation,'#',trnslt('SDtitle'),'ca-quickdeletion',trnslt('SDdescription'),null,'#ca-quickdeletion')).click(function(e) { e.preventDefault(); openQDDialog(); }); } XReportConfig = true; } } if (typeof OSRequesterConfig !== 'undefined') { if (OSRequesterConfig == true) { if (DB in XReport.OSRequester.data) { if (XReport.OSRequester.data[DB] == false) { nope = true; } } if (typeof nope == 'undefined') { $(mw.util.addPortletLink(blocation,'#',trnslt('OSR-button'),'ca-osrequester',trnslt('OSR-description'),null,'#ca-osrequester')).click(function(e) { e.preventDefault(); openOSRDialog(); }); $(mw.util.addPortletLink(clocation,'#',trnslt('OSR-button'),'ca-osrequester',trnslt('OSR-description'),null,'#ca-osrequester')).click(function(e) { e.preventDefault(); openOSRDialog(); }); } OSRequesterConfig = true; } } /*</nowiki>*/ 41zxijhrpydrgrgbx9en3d67fu7r8sz What is Espresso 0 166781 665190 665041 2025-07-02T19:25:16Z ~2025-116307 69384 test 665190 wikitext text/x-wiki What is Espresso Test? ==This is a page meant for testing android editing functionality== weqwe *Apple [[What is Espresso]] *Orange #Bread #Peanut Butter [[File:Morning_Espresso_Routine_-_Progress,_Results,_Observations_and_Miscellany.webm|thumb]] e8kiur1jdze3k35mcm1bkcen8lswywu User:TenWhile6/XS.js 2 166788 665223 664483 2025-07-03T07:03:35Z TenWhile6 51225 665223 javascript text/javascript if(typeof(XReportConfig) === 'undefined') window.XReportConfig = true; mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); 5dihe69x6ugqwafzituwusl8auemdb0 User:TenWhile6/OSR.js 2 166791 665222 664484 2025-07-03T07:03:35Z TenWhile6 51225 665222 javascript text/javascript if(typeof(OSRequesterConfig) === 'undefined') window.OSRequesterConfig = true; mw.loader.load('//test.wikipedia.org/w/index.php?title=User:TenWhile6/X.js&action=raw&ctype=text/javascript'); pjp4ce0jztpckou6uemoju4nvz569ee User:Ternera-test/sandbox 2 166956 665180 2025-07-02T14:33:43Z Ternera-test 69377 testing spam filter 665180 wikitext text/x-wiki '''<nowiki>https://consejospc.com</nowiki>''' rg743wpj662ds86kqorbinfsmy15nba 665181 665180 2025-07-02T14:34:32Z Ternera-test 69377 Blanked the page 665181 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 This is AutoPatrolled 0 166957 665188 2025-07-02T17:18:30Z SCardenas (WMF) 47441 Created page with "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ac odio eu orci dignissim semper et in nisl. Maecenas id magna vitae nunc lobortis sollicitudin nec in tellus. Morbi tincidunt lorem sit amet felis lobortis pharetra. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce ut quam at nulla ultricies laoreet. Pellentesque vel vehicula eros. Fusce convallis rutrum erat vel suscipit. Cras ultrices erat mauris, ac gravi..." 665188 wikitext text/x-wiki Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ac odio eu orci dignissim semper et in nisl. Maecenas id magna vitae nunc lobortis sollicitudin nec in tellus. Morbi tincidunt lorem sit amet felis lobortis pharetra. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce ut quam at nulla ultricies laoreet. Pellentesque vel vehicula eros. Fusce convallis rutrum erat vel suscipit. Cras ultrices erat mauris, ac gravida ante fermentum ac. Nam auctor leo in leo elementum, sed tincidunt tortor convallis. Donec convallis nisl eu imperdiet lacinia. Duis eros purus, commodo a mollis et, lacinia vitae ligula. Curabitur interdum neque quis ante eleifend facilisis. Phasellus vehicula faucibus massa, non ornare dolor molestie vitae. Suspendisse pellentesque varius mauris, ut iaculis mi fringilla nec. Nam ut gravida ipsum. Sed rhoncus turpis sed nibh ultricies, a laoreet lacus ultricies. Etiam mollis ex sed pharetra sollicitudin. Ut facilisis volutpat commodo. Nulla volutpat vulputate ipsum non iaculis. Nam id tristique nisi, a mollis dui. Etiam mattis luctus neque, nec condimentum eros ornare ut. Duis imperdiet quam neque, ut maximus leo blandit vitae. Integer ac enim sit amet dolor egestas maximus. Nam quis tortor congue, laoreet velit at, molestie nunc. Donec dapibus a nisi at pretium. In condimentum commodo magna, non mollis tellus euismod ac. Nam vehicula, est at sagittis malesuada, quam mauris maximus tortor, ac porttitor lorem justo in nunc. Sed eget dolor est. Curabitur sodales congue neque congue scelerisque. Morbi sit amet enim vel arcu tincidunt consectetur. Etiam molestie nec massa et molestie. Ut nec lacus et arcu dignissim vehicula ut ut urna. Ut sed malesuada ipsum, in rutrum elit. Donec ut facilisis lacus. Quisque ornare ac leo a luctus. Nulla facilisi. Nullam vel ornare ipsum. Maecenas nunc nisl, commodo in velit at, pharetra mollis lectus. Quisque volutpat viverra nisl, in fermentum nisi cursus lacinia. Curabitur nec mollis purus. Fusce odio velit, bibendum eget nisi quis, varius molestie tortor. Sed mollis purus lorem, vel porta enim vehicula ut. Donec quis est felis. Nullam magna nisl, laoreet at felis ut, semper auctor odio. Vivamus et pulvinar quam, vel porta enim. Nunc commodo a ex nec porttitor. Donec nec ligula imperdiet, eleifend ex porttitor, imperdiet dolor. Quisque tristique, elit ac tristique tincidunt, nunc nunc molestie metus, vitae tempor libero lacus ac orci. Sed ut posuere ipsum. Donec sollicitudin justo risus. Vestibulum at tempus nulla. Vestibulum vulputate tellus justo, eu egestas felis sagittis eget. Duis commodo, eros vel varius iaculis, odio nunc iaculis libero, sed dapibus magna mi ac tortor. 2rdql89sa3ybxbbx1pu6i9cq9hq56ig Event:T398059 1728 166958 665191 2025-07-02T20:48:28Z VWalters-WMF 55945 Created blank page 665191 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 TestPage OpenHands Reproduce 0 166959 665195 2025-07-03T00:14:54Z ~2025-118398 69388 Creating test page 665195 wikitext text/x-wiki Initial content ostpmrzyaljr0h7ldphmoui3x2802q1 665196 665195 2025-07-03T00:14:57Z ~2025-118398 69388 Updating test page 665196 wikitext text/x-wiki Updated content lqhbvt3t49az0f53vwy1sdzq0te3tz4 665197 665196 2025-07-03T00:16:22Z ~2025-117889 69389 Creating test page 665197 wikitext text/x-wiki Initial content ostpmrzyaljr0h7ldphmoui3x2802q1 665198 665197 2025-07-03T00:16:24Z ~2025-117889 69389 Updating test page 665198 wikitext text/x-wiki Updated content lqhbvt3t49az0f53vwy1sdzq0te3tz4 TestPage OpenHands 1751519496 0 166960 665219 2025-07-03T05:11:38Z ~2025-118179 69391 Creating test page 665219 wikitext text/x-wiki Hello, this is a new page. 1zzqujbped72nb4nn9mdfaaklpabeyv NonExistentPage OpenHands Test 12345 0 166961 665221 2025-07-03T06:14:42Z ~2025-119836 69393 create new page 665221 wikitext text/x-wiki Hi I'm a new page mfku6h9e1q6r72xmsbhfq02j7ok01pi