Wikipedia
testwiki
https://test.wikipedia.org/wiki/Main_Page
MediaWiki 1.39.0-wmf.22
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
Gadget
Gadget talk
Gadget definition
Gadget definition talk
Topic
Newsletter
Newsletter talk
Wikipedia:Requests/Tools
4
31626
519277
519211
2022-07-30T05:00:28Z
Matttest
49083
Per announcement at https://fortestwiki.myht.org/index.php?title=TestWiki:Community_portal&diff=697&oldid=692
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 adminship.</translate>
<hr width="86%"/>
<div class="plainlinks">
{| class="wikitable" style="text-align:center; background:none;"
|-
! bgcolor="grey"| <translate><!--T:2--> Name</translate>
! bgcolor="grey"| <translate><!--T:3--> MediaWiki version</translate>
! bgcolor="grey"| <translate><!--T:4--> IRC channel(s)</translate>
! bgcolor="grey"| <translate><!--T:6--> CheckUser</translate>
! bgcolor="grey"| <translate><!--T:8--> Privacy policy</translate>
! bgcolor="grey"| <translate><!--T:9--> Bug Tracker/Requests site</translate>
! bgcolor="grey"| <translate><!--T:10--> VisualEditor</translate>
|-
| [https://publictestwiki.com/ <translate><!--T:21--> '''Public Test Wiki''' (Miraheze)</translate>]
|bgcolor="#3E7"| 1.38.2<ref name="mhTestWiki">[https://publictestwiki.com/wiki/Special:Version <translate><!--T:22--> Public Test Wiki version page</translate>]</ref><br>(latest)
| [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://phabricator.miraheze.org/ Miraheze Phabricator]
| bgcolor="#3E7"| <translate><!--T:28--> Yes</translate>
|-
| [https://testwiki.wiki/ '''<translate><!--T:12--> Test Wiki</translate>''']
|bgcolor="#3E7"|1.38.2<ref>[https://testwiki.wiki/wiki/Special:Version <translate><!--T:13--> Test Wiki's Special:Version</translate>]</ref><br>(latest)
| [irc://chat.freenode.net/testadminwiki #testadminwiki] <translate><!--T:14--> on libera</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/ Testwiki Phabricator]
| bgcolor="#3E7"| <translate><!--T:19--> Yes</translate>
|-
| [https://www.thetestwiki.org/ '''<translate><!--T:48--> The Test Wiki</translate>''']
|bgcolor="yellow"| 1.35.1<ref name="ttw-version">[https://www.thetestwiki.org/wiki/Special:Version <translate><!--T:49--> The Test Wiki's Special:Version</translate>]</ref><br>(legacy)
| [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]]</translate>
| bgcolor="red"| <translate><!--T:56--> No</translate>
|-
| [http://testmw.fandom.com/ '''<translate><!--T:39--> Fandom Test Wiki</translate>''']
|bgcolor="yellow"|1.37.3<ref name="Wikia">[http://testmw.fandom.com/wiki/Special:Version <translate><!--T:40--> Test Wiki version page</translate>]</ref><br>(legacy)
| None for now
| bgcolor=Yellow|<translate><!--T:43--> Restricted</translate>
| bgcolor=#33EE77|[http://www.fandom.com/privacy-policy <translate><!--T:45--> Yes</translate>]
| bgcolor=#33EE77|[https://community.wikia.com/wiki/Special:Contact/bug <translate><!--T:59--> Fandom Support - Bug Report</translate>]
| bgcolor=#33EE77|<translate><!--T:46--> Yes</translate>
|-
| [http://fortestwiki.myht.org/ '''<translate> <!--T:60--> For-Test Wiki</translate>''']
|bgcolor=#3E7|1.38.2<ref>[https://fortestwiki.myht.org/index.php/Special:Version <translate><!--T:13--> For-Test Wiki's Special:Version</translate>]</ref><br>(latest)
| [irc://irc.libera.chat/fortestwiki #fortestwiki] on Libera
| bgcolor=#3E7|<translate> <!--T:61--> Yes (only for self)</translate>
| bgcolor=#33EE77|[http://fortestwiki.myht.org/index.php/TestWiki:Privacy_policy <translate> <!--T:62--> Yes, no-log policy</translate>]
| bgcolor=#33EE77|[http://fortestwiki.myht.org/index.php/TestWiki:Community_portal <translate> <!--T:63--> The Community portal</translate>]
| bgcolor=#33EE77|<translate> <!--T:64--> Yes</translate>
|}
</div>
<translate>
== Notes == <!--T:58-->
</translate>
<references />
gnt0v2szzeewo9gzel7a0x2weouspcu
Wikipedia:Administrator intervention against vandalism
4
36309
519276
514253
2022-07-30T01:40:29Z
2600:6C40:5400:2F5:795D:664C:C0D3:DEB2
wikitext
text/x-wiki
{{good article}}
<!--- Unless you can find a reputable source for the episode list (not IMDb or Fandom), please do not add an episode list.--->
{{Infobox television
| genre = [[Children's television series|Children's show]]<br />[[Educational television|Educational]]<br />[[Puppet show]]<br />Segment
| writer = [[Judy Freudberg]] (1998-2009)
| presenter = [[Kevin Clash]]<br />[[Ryan Dillon]]
| starring = [[Bill Irwin]]<br />[[Michael Jeter]]<br />[[Kristin Chenoweth]]<br />[[Sarah Jones (stage actress)|Sarah Jones]]<br />[[Daniel Koren]]<br />[[Daveed Diggs]]<br />[[Ilana Glazer]]
| runtime = 15 minutes (1998–2009)<br />5 minutes (2017-2021)
| opentheme = "Elmo's World Theme Song" (sung to "Elmo's Song" prior to 2017)
| endtheme = "The Close Song" (usually sung to the tune of "[[Jingle Bells]]") (1998–2009)<br />"The Happy Dance" (2017–2021)
| company = [[Sesame Workshop]] (Formerly known as Children's Television Workshop)
| distributor = Sesame Workshop
| country = United States
| language = English
| picture_format = [[NTSC]] (1998–2007)<br />[[HDTV]] [[720p]] & [[1080i]] (2008–2021)
| audio_format = [[Stereo]] (1998–2001)<br />[[Dolby Surround]] (2002–2006)<br />[[Dolby Digital]] (2007–2021)
| first_aired = '''Original series:'''<br />{{Start date|1998|11|16}} – {{Start date|2009|11|10}}<br />'''Revived series:'''<br />{{Start date|2017|1|7}}
| last_aired = {{End date|2021|7|1|}}
| num_episodes = 127 (including specials)
| image =
}}
'''''Elmo's World''''' is a segment that is shown at the end of the American children's television program ''[[Sesame Street]]''. It premiered on November 16, 1998, as part of the show's structural change and originally lasted fifteen minutes at the end of each episode until 2009. However it was then rebooted in 2017. The show was designed to appeal to younger viewers and to increase ratings, which had fallen in the past decade. The segment is presented from the perspective of a three-year-old child as represented by its host, the Muppet [[Elmo]], performed by [[Kevin Clash]] in the original series and [[Ryan Dillon]] in the 2017 reboot. "La-la-la-la, la-la-la-la, Elmo's World!"
8a8zv0yxkaog2rxv7zvtzvlzv119gy7
519279
519276
2022-07-30T07:38:22Z
Jeff G.
3855
Reverted edits by [[Special:Contributions/2600:6C40:5400:2F5:795D:664C:C0D3:DEB2|2600:6C40:5400:2F5:795D:664C:C0D3:DEB2]] ([[User talk:2600:6C40:5400:2F5:795D:664C:C0D3:DEB2|talk]]) to last revision by [[User:Interstatefive|Interstatefive]]
wikitext
text/x-wiki
<!-- Adds protection template automatically if page is semi-protected, inside the noinclude, because this page is transcluded. --><noinclude>{{#ifeq:|autoconfirmed|}}</noinclude><!-- Categories --><noinclude>[[Category:Wikipedia noticeboards]]{{Redirect|WP:RVAN|information on how to respond to vandalism|Wikipedia:Vandalism#How to respond to vandalism}}{{/Header}}{{Floating link|Administrator instructions|Administrator instructions}}
__NEWSECTIONLINK__<!-- __NEWSECTIONLINK__ causes a + button to
appear on the edit page. This is a useful feature, as it allows editors
to add reports without edit conflicts; edit conflicts are very common on this page. -->
<!-- The backlog tag is automatically changed to enabled
({{adminbacklog}}) or disabled ({{noadminbacklog}}) by a bot. There is
usually no need to manually edit the following line. Please see the talk page for more details if you wish to manually force the removal of the back-log indicator, rather than removing it. -->
{{noadminbacklog}}<!-- v2.0.15 RemoveBlocked=On MergeDuplicates=On AutoMark=On FixInstructions=Off AutoBacklog=On AddLimit=5 RemoveLimit=2 --></noinclude>
<!-- Do not remove adminbacklog/noadminbacklog template above! -->
==Reports==
{{Wikipedia:Administrator intervention against vandalism/TB2}}
=== User-reported ===
70z7g6jbng5q41lovl56y9kpdi64zdp
File:MP sounds-pwb.png
6
78320
519258
519224
2022-07-29T16:52:18Z
Pywikibot-test
23124
Pywikibot-test uploaded a new version of [[File:MP sounds-pwb.png]]
wikitext
text/x-wiki
pywikibot test
mvex885are6ahaz42kwh4kn9swdrp8i
519259
519258
2022-07-29T16:54:23Z
Pywikibot-test
23124
Pywikibot-test uploaded a new version of [[File:MP sounds-pwb.png]]
wikitext
text/x-wiki
pywikibot test
mvex885are6ahaz42kwh4kn9swdrp8i
User:John Vandenberg/async test write
2
81547
519252
519217
2022-07-29T16:22:34Z
Pywikibot-test
23124
Pywikibot 7.6.0.dev2
wikitext
text/x-wiki
1659111745.1096778
aa5kh1a8ppk5do53mh4wtuu51rf4xzw
User:John Vandenberg/appendtext test
2
81788
519251
519216
2022-07-29T16:22:24Z
Pywikibot-test
23124
wikitext
text/x-wiki
1433650768.531433650922.331433651729.111433670166.311433675620.231434189298.391434190713.181434466819.82218051434544025.22135851434556196.60172341435173199.59346151435175699.59451271435227022.74044541435528701.75742911435530425.45590261435603389.080081437231694.72999551437247968.58793571437249806.3797741437298795.05681351437299498.54262071437301447.66920381437302227.7655441437303194.27986031437304101.72397661437310188.7074311437310950.0167771437312161.48824671437313010.34581731437313729.64502261437508795.02368621437509778.81783961437516631.40031891438256915.00195531438380338.75435851438383980.68647171438454064.30758831438457192.55998851438473558.4497151438475370.52737021438888563.82252121439048615.09364531439242551.86522051439284878.94054751439567068.00147221439645869.40761881439653355.34343361439892097.89366271439893989.92894151439937872.74017361439942911.25551271440071096.08264111440280762.25626281440718001.3262011440893319.42683861441040710.94389411441045094.56088661441367039.71286131441492543.00856571441494238.9647241443131370.03606581443212814.54482251454969098.621455143085.01455479939.331458010578.141646415352.6267931646418236.303551646419108.5554141646480673.1255151646486361.30947541646489252.55788281646497776.8472891646500951.96962931646503090.90285371646508464.6270851646557704.72482941646560644.88797711646568704.91856581646573733.00244281646576832.29534481646608917.34515641646654969.60378361646656319.4402261646656560.3573951646667875.37336181646669840.47606131646671473.95034121646674984.85814431646826562.7642131646830600.84946161646833174.90316631646834856.9354641646836733.8114731646848463.33862281646854361.6220061646921244.61630941646929392.52481341646933478.7709891646989628.14013271646993317.0693991647006535.8758381647010068.79893281647067797.81312181647070228.9538041647088146.43666861647129259.68616061647160403.20344641647161418.68453741647165213.34464841647182471.8682351647203984.8648061647204146.85476951647205856.08880071647229928.91692161647232863.2489111647244837.81863951647253131.60572861647253341.66492151647257374.36275241647261586.3715681647328114.68083791647328863.86457971647338369.03202411647345322.46875211647352352.98292641647362207.4400921647376689.68484851647377054.13237741647507817.3071141647520722.49061581647537658.91502861647537706.9929851647537724.92751151647537734.26552411647537734.81241751647537796.29433751647600884.78828861647603345.3407491647607378.26923131647607451.39406541647610335.08369161647619863.80975681647636713.9665881647684938.94061331647686327.2922681647690808.45028761647692744.59212851647732431.32598611647772952.28326751647781284.95441991647800669.47089581647849904.41088181647854192.1383851647860875.18231251647874602.63781051647879297.1874931647883065.4647961647924265.03851251647936769.8719151647951966.8961621648054226.68201351648059130.80152961648060298.43086981648069938.0877581648125306.6112961648143342.68760181648143650.04991751648188528.68711191648196925.6356741648203876.69900561648211369.0150091648230332.54617121648281987.22994761648283693.56241941648285224.71328661648286447.91258651648291573.67376261648291846.70330291648294060.07191231648296246.83941861648298801.97048331648305016.80210021648334644.85586831648379305.4112821648389448.81566381648405605.99447971648411133.04927181648412522.24783181648422117.89680721648446617.8572281648450264.77608821648454199.90044761648467787.75208971648467856.83117841648718888.7086471648726868.34113621648731002.50412491648735298.12991521649690895.66212321649691467.9696281649743553.52938491649755873.90303251649763327.8892521649774138.0124031649777526.37097861649778489.48823021649784790.27565621649860160.37698861649936556.74318031649955430.38933971650002447.5759611650006360.23943541650028605.97354981650039495.475341650041154.52726721650041204.27767731650043469.9524181650182871.47858071650185429.33433821650203503.7359421650214109.96521881650231719.77891951650281824.2778291650288925.13755371650295721.33825951650295882.12538961650300339.22233131650341815.28370641650380832.94509431650402613.69048711650518905.2356281650522569.2941071650530608.544891650531430.3989611650533914.10076831650542738.41888791650546175.9846881650568044.03694751650631023.97239781650632899.72227331650634830.3925491650637007.66384821650640862.5720661650689309.4054381650701657.98250581650703185.78357031650703771.5033541650735123.8095531650738484.06956341650776192.5568211650813066.8977991650848683.918771650861187.31198121650876020.82570171650880474.35385231650881868.45988561650883153.22984271650884549.92777321650886892.40727421650897830.36771461650949494.34935431650949911.4991251650954397.3235271650990281.23737171650995523.8559241651056953.48302131651058845.9713631651060365.91917781651065711.69361521651066891.44208121651068680.67229721651068949.30104371651068950.86070821651069866.21405341651077973.48218511651150569.5798041651150701.53431841651159306.89410231651163972.5414571651207135.13229251651314580.08892971651323639.1569731651335350.97018341651337464.3604491651343671.43810871651358144.34414821651358991.73634841651403991.80600071651408466.43860861651410629.6915031651424095.3323751651424215.430631651424217.16175171651424260.61668921651435316.36143421651477433.62521861651497967.4008731651570956.43188331651571040.13904711651574112.83837941651576178.2236351651585370.21917181651635290.6039241651635576.97641251651635655.45832421651635743.04751161651652652.44804481651673300.35671471651690999.9594171651756658.2204551651756671.9024541651780115.29231761651804123.6068891651841232.36630061651872084.1808571651914696.15967461651915185.17890741651924981.59495141651924985.67764931651947461.11864161652010451.4397451652013169.15126091652018291.04681441652101981.57916931652102144.73755261652205259.24803381652228263.38625721652241111.3187991652241991.0605551652246545.13976341652249133.80611011652345322.74670461652349556.01237941652349776.2655691652350144.64992761652353480.50348451652355561.35055181652355572.5898951652363359.53054261652423597.3604321652425345.54388571652434442.67079141652466898.8122741652467998.09214571652481119.60053971652515900.4313781652516491.8247921652517245.8858371652517458.95822791652523536.91254641652525004.91378931652529117.52156421652530351.27152131652549586.46723871652562013.24319481652614409.32601761652616114.78897861652640389.54013231652701163.91744661652701218.71869951652704583.73101121652736636.34235531652809358.14918331652809500.2787851652885818.32253531652895677.120911652946764.21459771652958152.14900661653025900.08983161653065810.43916341653077663.07969381653095577.50154731653096778.42144161653097676.23765561653097888.80603721653116153.01087381653117420.85944841653118936.11491161653125313.7796781653126335.42993711653134067.09842161653139182.64564281653140672.3829011653154587.25496341653199373.6701311653226953.91169641653231963.08484821653232304.7106561653232554.38019971653232554.62967321653232677.8029061653256433.89535141653299432.4922731653306400.6730731653306472.8736611653393355.7553971653418909.73856261653565475.12498951653565552.10120181653644012.96268871653661508.7837781653661589.44294881653680694.40217831653757986.47126131653758797.5201131653758875.8009641653759516.43632131653815204.55978871653824578.46436481653842638.63208631653842909.72020081653892126.12672331653892420.81626921653892767.61418631653902922.38997861653910982.26115511653911098.50605081653912234.13429621653924819.25348691653941654.93242031653982713.13638191654003151.13523241654003174.6005821654264812.17732931654266724.5675461654268127.23252031654270160.76145861654301043.6971021654301072.0992181654301079.82639071654301896.66440531654334439.6818731654371822.44146631654428936.93347531654437095.0085341654508132.13094881654508335.43588731654520334.84838561654524063.79315451654525364.53509121654534180.4449181654953821.0468051654961938.94488381655036873.3743951655057492.40380381655057801.47854161655062300.50764231655129886.96682861655141011.99076751655166294.6540651655166301.61901331655216132.3208221655223573.8453581655225751.37171321655246178.10818171655296810.23211931655301828.3813591655368778.396751655379956.18857221655380431.36770651655472945.27423521655484574.08949831655507527.0224681655537627.60304521655558615.17976361655563633.72554421655569614.23738551655634387.11088251655645988.83602711655657438.1813961655713626.63884621655721946.37590861655722438.1599561655723778.13386921655725062.77537751655725269.6044051655728370.88312841655752608.5468571655809347.31652141655821992.57788371655831959.40542841655832768.65955691655843607.9513691655847927.774761655910557.06128741655930286.04162761655984718.1677731655984784.72391371656084284.91802841656091464.9171381656108569.03781821656144910.73668431656237464.9551931656238061.17135551656238140.40173581656238882.40057641656238919.37414531656239293.42675191656242411.12083081656246784.30946971656260465.50201821656261907.03887151656263294.21785121656264857.22691631656268330.1211061656268437.60271121656301508.07333091656330302.93307041656330502.12784811656356829.9017161656385974.7934371656387732.02068971656483270.8206721656596673.7715261656635713.02665231656667311.15519761656667757.71407681656693761.8080651656705954.52436731656753744.37684461656763015.42648551656767146.81630661656841740.58635851656845713.36385511656846091.09794041656928094.63535641656948795.61005121656950066.0852351656964699.3929741657002316.55603961657010505.2748941657013544.80798841657015413.77136021657025003.4560941657038750.15809251657039417.24476391657043605.9258891657044407.42733961657051733.92174651657088120.63696361657104460.7448131657108288.86261561657121273.51174641657125154.85219221657140234.29372531657192424.43024661657197439.27889011657198301.67318251657201269.89470821657211198.80976871657271744.8218321657281300.4610831657374150.77523261657476775.62064481657481255.09343081657482599.06296831657497382.093291657539578.63450741657539781.1762681657558369.09502081657799038.87918231657799116.29259251657859471.084171657859516.10439011657962545.19483261657962787.59437661657967228.37440181657974597.18307661658049488.68201351658060577.18078541658064128.90686661658064263.8123631658069341.93958781658077026.34067771658078706.88455961658079600.63347741658081221.23908161658081285.91025161658085023.94248371658128817.5476131658136214.41560361658152834.47753431658166801.45076581658196924.6985691658234310.5858651658247533.30726621658296567.73139791658300378.65953061658303756.00198131658305698.39711261658382887.724681658383856.37543231658384121.3366351658390189.93443231658392025.1128251658412468.54568721658412797.65880041658438616.3758981658471521.65448121658472954.71186351658474751.5916821658474776.28065591658486284.59899661658486319.77809761658486383.9840391658490944.0040541658491220.88122321658494083.36627481658572911.5845361658577899.82729891658587022.79079221658591743.12070351658599637.18309741658603076.26439361658607840.53604631658608068.95690061658632322.36042521658663105.38651751658665771.35931851658667025.4637931658668018.09719041658669787.80982111658691321.1552461658692788.99276071658694425.02418141658719342.8613571658719344.900981658736094.62209821658744041.35345391658748345.99290781658749553.6679561658749620.34319641658764308.11469481658819039.0050441658824812.17245531658842921.14167791658862950.05908541658866951.6806491658867535.5773941658877498.26109531658877516.4155781658896342.94982431658896469.47555181658939089.75173661658940109.93389181658940199.76201341658944478.1677931658949832.38372451658975346.1412181658988816.19879631659008462.91326981659008575.73063641659012991.48196961659082566.04576251659111734.5913854
gpegsgy63nolnujrxx0ovl56rdgw8bw
User:Unicodesnowman/DeleteMark
2
82252
519249
519215
2022-07-29T16:22:07Z
Pywikibot-test
23124
pywikibot unit test. Do NOT actually delete.
wikitext
text/x-wiki
{{delete|1=pywikibot unit test. Do NOT actually delete.}}
foo
cymfz8u3wtlps4m6nlzq7086mgmr0cz
519250
519249
2022-07-29T16:22:12Z
Pywikibot-test
23124
unit test
wikitext
text/x-wiki
foo
1e6gpc3ehk0mu2jqu8cg42g009s796b
User:Patsagorn Y./sandbox
2
105710
519278
484756
2022-07-30T07:07:10Z
Patsagorn Y.
42891
wikitext
text/x-wiki
<div class="center er-container"><span class="er-not-supported" style="display:none;">This client is not support javascript or you cannot run the script</span><span class="er-please-wait" style="display: none;">Your browser support JavaScript. Please wait while loading ER</span><div class="er-start-button mw-ui-button mw-ui-progressive" style="width: 100%;">Start an Edit Request (ER)</div></div>
><
ข้อความในปุ่มที่ถูกใช้ คือ
* [[MediaWiki:publishchanges/th]] ({{int:publishchanges}}) - กรณีแก้ไขหน้าที่มีอยู่แล้ว
* [[MediaWiki:publishpage/th]] ({{int:publishpage}}) - กรณีสร้างหน้าใหม่
ถ้าอยากให้มันเปลี่ยนแปลงตามภาษา Interface ของผู้ใช้ ก็สามารถใช้ <code><nowiki>{{int:publishpage}}</nowiki></code> ได้ครับ (ตัวอย่าง: [{{fullurl:{{FULLPAGENAME}}#ข้อเสนอปรับปรุงข้อความ กรกฎาคม 2565|uselang=uk}} uselang=uk], [{{fullurl:{{FULLPAGENAME}}#ข้อเสนอปรับปรุงข้อความ กรกฎาคม 2565|uselang=ja}} uselang=ja])
huevuvuhcv3n3oew6qheqqpd7qjiuz5
Wikipedia:Sandbox
4
107092
519273
519231
2022-07-29T21:00:29Z
Cewbot
33876
Clear the sandbox. If you want to keep it longer, please test it in [[Special:MyPage/Sandbox|personal sandbox]], you can also check the revision history of the sandbox.
wikitext
text/x-wiki
<noinclude>{{Sandbox}}</noinclude>
== Please start your testing below this line ==
9v37rcaxoiwjar8n3q9n7dcsjdvcyin
User:Hamish/Twinkle/modules/twinklewarn.js
2
112058
519275
501280
2022-07-30T00:04:34Z
Hamish
40220
Initialise to 4a5c761b2826d5fad04c247fc8c67babf38dcb54 at xi-plus/master
javascript
text/javascript
// <nowiki>
(function($) {
/*
****************************************
*** twinklewarn.js: Warn module
****************************************
* Mode of invocation: Tab ("Warn")
* Active on: Any page with relevant user name (userspace, contribs,
* etc.), as well as the rollback success page
*/
Twinkle.warn = function twinklewarn() {
if (Morebits.wiki.flow.relevantUserName()) {
Twinkle.addPortletLink(Twinkle.warn.callback, '警告', 'tw-warn', wgULS('警告或提醒用户', '警告或提醒使用者'));
if (Twinkle.getPref('autoMenuAfterRollback') &&
mw.config.get('wgNamespaceNumber') === 3 &&
mw.util.getParamValue('vanarticle') &&
!mw.util.getParamValue('friendlywelcome') &&
!mw.util.getParamValue('noautowarn')) {
Twinkle.warn.callback();
}
}
// Modify URL of talk page on rollback success pages, makes use of a
// custom message box in [[MediaWiki:Rollback-success]]
if (mw.config.get('wgAction') === 'rollback') {
var $vandalTalkLink = $('#mw-rollback-success').find('.mw-usertoollinks a').first();
if ($vandalTalkLink.length) {
Twinkle.warn.makeVandalTalkLink($vandalTalkLink, Morebits.pageNameNorm);
$vandalTalkLink.css('font-weight', 'bold');
}
}
if (mw.config.get('wgCanonicalSpecialPageName') === 'AbuseLog' && mw.config.get('wgAbuseFilterVariables') !== null) {
var afTalkLink = $('.mw-usertoollinks-talk').first();
if (afTalkLink.length) {
Twinkle.warn.makeVandalTalkLink(afTalkLink, mw.config.get('wgAbuseFilterVariables').page_prefixedtitle);
afTalkLink.css('font-weight', 'bold');
}
}
// Override the mw.notify function to allow us to inject a link into the
// rollback success popup. Only users with the 'rollback' right need this,
// but we have no nice way of knowing who has that right (what with global
// groups and the like)
/*
else if( mw.config.get('wgAction') === 'history' ) {
mw.notifyOriginal = mw.notify;
mw.notify = function mwNotifyTwinkleOverride(message, options) {
// This is a horrible, awful hack to add a link to the rollback success
// popup. All other notification popups should be left untouched.
// It won't work for people whose user language is not English.
// As it's a hack, it's liable to stop working or break sometimes,
// particularly if the text or format of the confirmation message
// (MediaWiki:Rollback-success-notify) changes.
var regexMatch;
if ( options && options.title && mw.msg && options.title === mw.msg('actioncomplete') &&
message && $.isArray(message) && message[0] instanceof HTMLParagraphElement &&
(regexMatch = /^(?:回退|還原|取消|撤销|撤銷)(.+)(?:编辑|編輯|做出的編輯|做出的编辑|做出的修订版本|做出的修訂版本)/.exec(message[0].innerText))
) {
// Create a nicely-styled paragraph to place the link in
var $p = $('<p/>');
$p.css("margin", "0.5em -1.5em -1.5em");
$p.css("padding", "0.5em 1.5em 0.8em");
$p.css("border-top", "1px #666 solid");
$p.css("cursor", "default");
$p.click(function(e) { e.stopPropagation(); });
// Create the new talk link and append it to the end of the message
var $vandalTalkLink = $('<a/>');
$vandalTalkLink.text("用Twinkle警告用户");
//$vandalTalkLink.css("display", "block");
$vandalTalkLink.attr("href", mw.util.getUrl("User talk:" + regexMatch[1]));
Twinkle.warn.makeVandalTalkLink($vandalTalkLink);
$p.append($vandalTalkLink);
message[0].appendChild($p.get()[0]);
// Don't auto-hide the notification. It only stays around for 5 seconds by
// default, which might not be enough time for the user to read it and
// click the link
options.autoHide = false;
}
mw.notifyOriginal.apply(mw, arguments);
};
}
*/
// for testing, use:
// mw.notify([ $("<p>Reverted edits by foo; changed</p>")[0] ], { title: mw.msg('actioncomplete') } );
};
Twinkle.warn.makeVandalTalkLink = function($vandalTalkLink, pagename) {
$vandalTalkLink.wrapInner($('<span/>').attr('title', wgULS('如果合适,您可以用Twinkle在该用户讨论页上做出警告。', '如果合適,您可以用Twinkle在該使用者討論頁上做出警告。')));
var extraParam = 'vanarticle=' + mw.util.rawurlencode(pagename);
var href = $vandalTalkLink.attr('href');
if (href.indexOf('?') === -1) {
$vandalTalkLink.attr('href', href + '?' + extraParam);
} else {
$vandalTalkLink.attr('href', href + '&' + extraParam);
}
};
// Used to close window when switching to ARV in autolevel
Twinkle.warn.dialog = null;
Twinkle.warn.callback = function twinklewarnCallback() {
if (Morebits.wiki.flow.relevantUserName() === mw.config.get('wgUserName') &&
!confirm(wgULS('您将要警告自己!您确定要继续吗?', '您將要警告自己!您確定要繼續嗎?'))) {
return;
}
var dialog;
Twinkle.warn.dialog = new Morebits.simpleWindow(600, 440);
dialog = Twinkle.warn.dialog;
dialog.setTitle(wgULS('警告、提醒用户', '警告、提醒使用者'));
dialog.setScriptName('Twinkle');
dialog.addFooterLink(wgULS('选择警告级别', '選擇警告級別'), 'WP:WARN');
dialog.addFooterLink(wgULS('警告设置', '警告設定'), 'WP:TW/PREF#warn');
dialog.addFooterLink(wgULS('Twinkle帮助', 'Twinkle說明'), 'WP:TW/DOC#warn');
var form = new Morebits.quickForm(Twinkle.warn.callback.evaluate);
var main_select = form.append({
type: 'field',
label: wgULS('选择要发送的警告或提醒类型', '選擇要傳送的警告或提醒類別'),
tooltip: wgULS('首先选择一组,再选择具体的警告模板。', '首先選擇一組,再選擇具體的警告模板。')
});
var main_group = main_select.append({
type: 'select',
name: 'main_group',
tooltip: wgULS('您可在Twinkle参数设置中设置默认选择的选项', '您可在Twinkle偏好設定中設定預設選擇的選項'),
event: Twinkle.warn.callback.change_category
});
var defaultGroup = parseInt(Twinkle.getPref('defaultWarningGroup'), 10);
main_group.append({ type: 'option', label: wgULS('自动选择层级(1-4)', '自動選擇層級(1-4)'), value: 'autolevel', selected: defaultGroup === 11 });
main_group.append({ type: 'option', label: '1:提醒', value: 'level1', selected: defaultGroup === 1 });
main_group.append({ type: 'option', label: '2:注意', value: 'level2', selected: defaultGroup === 2 });
main_group.append({ type: 'option', label: '3:警告', value: 'level3', selected: defaultGroup === 3 });
main_group.append({ type: 'option', label: wgULS('4:最后警告', '4:最後警告'), value: 'level4', selected: defaultGroup === 4 });
main_group.append({ type: 'option', label: '4im:唯一警告', value: 'level4im', selected: defaultGroup === 5 });
if (Twinkle.getPref('combinedSingletMenus')) {
main_group.append({ type: 'option', label: wgULS('单层级消息', '單層級訊息'), value: 'singlecombined', selected: defaultGroup === 6 || defaultGroup === 7 });
} else {
main_group.append({ type: 'option', label: wgULS('单层级提醒', '單層級提醒'), value: 'singlenotice', selected: defaultGroup === 6 });
main_group.append({ type: 'option', label: wgULS('单层级警告', '單層級警告'), value: 'singlewarn', selected: defaultGroup === 7 });
}
if (Twinkle.getPref('customWarningList').length) {
main_group.append({ type: 'option', label: wgULS('自定义警告', '自訂警告'), value: 'custom', selected: defaultGroup === 9 });
}
main_group.append({ type: 'option', label: '所有警告模板', value: 'kitchensink', selected: defaultGroup === 10 });
main_select.append({ type: 'select', name: 'sub_group', event: Twinkle.warn.callback.change_subcategory }); // Will be empty to begin with.
form.append({
type: 'input',
name: 'article',
label: wgULS('页面链接', '頁面連結'),
value: mw.util.getParamValue('vanarticle') || '',
size: 50,
tooltip: wgULS('给模板中加入一页面链接,可留空。', '給模板中加入一頁面連結,可留空。'),
placeholder: wgULS('仅限一个,勿使用网址、[[ ]],可使用Special:Diff', '僅限一個,勿使用網址、[[ ]],可使用Special:Diff')
});
form.append({
type: 'div',
label: '',
style: 'color: red',
id: 'twinkle-warn-warning-messages'
});
var more = form.append({ type: 'field', name: 'reasonGroup', label: wgULS('警告信息', '警告資訊') });
more.append({ type: 'textarea', label: wgULS('可选信息:', '可選資訊:'), name: 'reason', tooltip: wgULS('理由或是附加信息', '理由或是附加資訊') });
var previewlink = document.createElement('a');
$(previewlink).click(function() {
Twinkle.warn.callbacks.preview(result); // |result| is defined below
});
previewlink.style.cursor = 'pointer';
previewlink.textContent = wgULS('预览', '預覽');
more.append({ type: 'div', id: 'warningpreview', label: [ previewlink ] });
more.append({ type: 'div', id: 'twinklewarn-previewbox', style: 'display: none' });
more.append({ type: 'submit', label: '提交' });
var result = form.render();
dialog.setContent(result);
dialog.display();
result.main_group.root = result;
result.previewer = new Morebits.wiki.preview($(result).find('div#twinklewarn-previewbox').last()[0]);
// Potential notices for staleness and missed reverts
var message = '';
var query = {};
var vanrevid = mw.util.getParamValue('vanarticlerevid');
if (vanrevid) {
// If you tried reverting, check if *you* actually reverted
if (!mw.util.getParamValue('noautowarn') && mw.util.getParamValue('vanarticle')) { // Via fluff link
query = {
action: 'query',
titles: mw.util.getParamValue('vanarticle'),
prop: 'revisions',
rvstartid: vanrevid,
rvlimit: 2,
rvdir: 'newer',
rvprop: 'user'
};
new Morebits.wiki.api(wgULS('检查您是否成功回退该页面', '檢查您是否成功回退該頁面'), query, function(apiobj) {
var revertUser = $(apiobj.getResponse()).find('revisions rev')[1].getAttribute('user');
if (revertUser && revertUser !== mw.config.get('wgUserName')) {
message += wgULS('其他人回退了该页面,并可能已经警告该用户。', '其他人回退了該頁面,並可能已經警告該使用者。');
$('#twinkle-warn-warning-messages').text('注意:' + message);
}
}).post();
}
// Confirm edit wasn't too old for a warning
var checkStale = function(vantimestamp) {
var revDate = new Morebits.date(vantimestamp);
if (vantimestamp && revDate.isValid()) {
if (revDate.add(24, 'hours').isBefore(new Date())) {
message += wgULS('这笔编辑是在24小时前做出的,现在警告可能已过时。', '這筆編輯是在24小時前做出的,現在警告可能已過時。');
$('#twinkle-warn-warning-messages').text('注意:' + message);
}
}
};
var vantimestamp = mw.util.getParamValue('vantimestamp');
// Provided from a fluff module-based revert, no API lookup necessary
if (vantimestamp) {
checkStale(vantimestamp);
} else {
query = {
action: 'query',
prop: 'revisions',
rvprop: 'timestamp',
revids: vanrevid
};
new Morebits.wiki.api(wgULS('获取版本时间戳', '取得版本時間戳'), query, function(apiobj) {
vantimestamp = $(apiobj.getResponse()).find('revisions rev').attr('timestamp');
checkStale(vantimestamp);
}).post();
}
}
if (mw.util.isIPAddress(Morebits.wiki.flow.relevantUserName())) {
query = {
format: 'json',
action: 'query',
list: 'usercontribs',
uclimit: 1,
ucend: new Morebits.date().subtract(30, 'days').format('YYYY-MM-DDTHH:MM:ssZ', 'utc'),
ucuser: Morebits.wiki.flow.relevantUserName()
};
new Morebits.wiki.api(wgULS('检查该IP用户上一笔贡献时间', '檢查該IP使用者上一筆貢獻時間'), query, function(apiobj) {
if (apiobj.getResponse().query.usercontribs.length === 0) {
message += wgULS('此IP用户上一次编辑在30日之前,现在警告可能已过时。', '此IP使用者上一次編輯在30日之前,現在警告可能已過時。');
$('#twinkle-warn-warning-messages').text('注意:' + message);
}
}).post();
}
var init = function() {
// We must init the first choice (General Note);
var evt = document.createEvent('Event');
evt.initEvent('change', true, true);
result.main_group.dispatchEvent(evt);
};
Morebits.wiki.flow.check('User_talk:' + Morebits.wiki.flow.relevantUserName(), function () {
Twinkle.warn.isFlow = true;
init();
}, function () {
Twinkle.warn.isFlow = false;
init();
});
};
// This is all the messages that might be dispatched by the code
// Each of the individual templates require the following information:
// label (required): A short description displayed in the dialog
// summary (required): The edit summary used. If an article name is entered, the summary is postfixed with "on [[article]]", and it is always postfixed with ". $summaryAd"
// suppressArticleInSummary (optional): Set to true to suppress showing the article name in the edit summary. Useful if the warning relates to attack pages, or some such.
// 警告:警告消息有简体和繁体两个版本,请注意同时维护!
Twinkle.warn.messages = wgULS({
levels: {
'不同类型的非建设编辑': {
'uw-vandalism': {
level1: {
label: '明显的破坏',
summary: '提醒:明显破坏'
},
level2: {
label: '明显的破坏',
summary: '注意:明显破坏'
},
level3: {
label: '恶意破坏',
summary: '警告:恶意破坏'
},
level4: {
label: '恶意破坏',
summary: '最后警告:恶意破坏'
},
level4im: {
label: '恶意破坏',
summary: '唯一警告:恶意破坏'
}
},
'uw-test': {
level1: {
label: '进行编辑测试而未及时清理',
summary: '提醒:进行编辑测试而未及时清理'
},
level2: {
label: '进行损毁性的编辑测试',
summary: '注意:进行编辑测试'
},
level3: {
label: '编辑测试',
summary: '警告:编辑测试'
},
level4: {
label: '编辑测试',
summary: '最后警告:编辑测试'
}
},
'uw-delete': {
level1: {
label: '不恰当地移除页面内容、模板或资料',
summary: '提醒:不恰当地移除页面内容、模板或资料'
},
level2: {
label: '不恰当地移除页面内容、模板或资料',
summary: '注意:不恰当地移除页面内容、模板或资料'
},
level3: {
label: '不恰当地移除页面内容、模板或资料',
summary: '警告:不恰当地移除页面内容、模板或资料'
},
level4: {
label: '移除页面、移除内容或模板',
summary: '最后警告:移除页面、移除内容或模板'
},
level4im: {
label: '移除页面内容、模板或资料',
summary: '唯一警告:移除页面内容、模板或资料'
}
},
'uw-redirect': {
level1: {
label: '创建破坏性的重定向',
summary: '提醒:创建破坏性的重定向'
},
level2: {
label: '创建恶意重定向',
summary: '注意:创建恶意重定向'
},
level3: {
label: '创建恶意重定向',
summary: '警告:创建恶意重定向'
},
level4: {
label: '创建恶意重定向',
summary: '最后警告:创建恶意重定向'
},
level4im: {
label: '创建恶意重定向',
summary: '唯一警告:创建恶意重定向'
}
},
'uw-tdel': {
level1: {
label: '在问题仍未解决的情况下移除维护性模板',
summary: '提醒:移除维护性模板'
},
level2: {
label: '在问题仍未解决的情况下移除维护性模板',
summary: '注意:移除维护性模板'
},
level3: {
label: '移除维护性模板',
summary: '警告:移除维护性模板'
},
level4: {
label: '移除维护性模板',
summary: '最后警告:移除维护性模板'
}
},
'uw-joke': {
level1: {
label: '在百科全书内容中加入玩笑',
summary: '提醒:加入不当玩笑'
},
level2: {
label: '在百科全书内容中加入玩笑',
summary: '注意:加入不当玩笑'
},
level3: {
label: '在百科全书内容中加入不当玩笑',
summary: '警告:在百科全书内容中加入不当玩笑'
},
level4: {
label: '在百科全书内容中加入不当玩笑',
summary: '最后警告:在百科全书内容中加入不当玩笑'
},
level4im: {
label: '加入不当玩笑',
summary: '唯一警告:加入不当玩笑'
}
},
'uw-create': {
level1: {
label: '创建不当页面',
summary: '提醒:创建不当页面'
},
level2: {
label: '创建不当页面',
summary: '注意:创建不当页面'
},
level3: {
label: '创建不当页面',
summary: '警告:创建不当页面'
},
level4: {
label: '创建不当页面',
summary: '最后警告:创建不当页面'
},
level4im: {
label: '创建不当页面',
summary: '唯一警告:创建不当页面'
}
},
'uw-upload': {
level1: {
label: '上传不当图像',
summary: '提醒:上传不当图像'
},
level2: {
label: '上传不当图像',
summary: '注意:上传不当图像'
},
level3: {
label: '上传不当图像',
summary: '警告:上传不当图像'
},
level4: {
label: '上传不当图像',
summary: '最后警告:上传不当图像'
},
level4im: {
label: '上传不当图像',
summary: '唯一警告:上传不当图像'
}
},
'uw-image': {
level1: {
label: '在页面中加入不当图片',
summary: '提醒:在页面中加入不当图片'
},
level2: {
label: '在页面中加入不当图片',
summary: '注意:在页面中加入不当图片'
},
level3: {
label: '在页面中加入不当图片',
summary: '警告:在页面中加入不当图片'
},
level4: {
label: '在页面中加入不当图片',
summary: '最后警告:在页面中加入不当图片'
},
level4im: {
label: '加入不恰当的图片',
summary: '唯一警告:加入不恰当的图片'
}
},
'uw-nor': {
level1: {
label: '在条目中加入原创研究',
summary: '提醒:在条目中加入原创研究'
},
level2: {
label: '在条目中加入原创研究',
summary: '注意:在条目中加入原创研究'
},
level3: {
label: '在条目中加入原创研究',
summary: '警告:在条目中加入原创研究'
}
},
'uw-politicalbias': {
level1: {
label: '违反两岸四地用语、朝鲜半岛用语等相关规定',
summary: '提醒:违反两岸四地用语、朝鲜半岛用语等相关规定'
},
level2: {
label: '违反两岸四地用语、朝鲜半岛用语等相关规定',
summary: '注意:违反两岸四地用语、朝鲜半岛用语等相关规定'
},
level3: {
label: '违反两岸四地用语、朝鲜半岛用语等相关规定',
summary: '警告:违反两岸四地用语、朝鲜半岛用语等相关规定'
},
level4: {
label: '违反两岸四地用语、朝鲜半岛用语等相关规定',
summary: '最后警告:违反两岸四地用语、朝鲜半岛用语等相关规定'
},
level4im: {
label: '违反两岸四地用语、朝鲜半岛用语等相关规定',
summary: '唯一警告:违反两岸四地用语、朝鲜半岛用语等相关规定'
}
}
},
'增加商品或政治广告': {
'uw-spam': {
level1: {
label: '增加不合适的外部链接',
summary: '提醒:增加不合适的外部链接'
},
level2: {
label: '增加垃圾链接',
summary: '注意:增加垃圾链接'
},
level3: {
label: '增加垃圾链接',
summary: '警告:增加垃圾链接'
},
level4: {
label: '增加垃圾链接',
summary: '最后警告:增加垃圾链接'
},
level4im: {
label: '增加垃圾连结',
summary: '唯一警告:增加垃圾连结'
}
},
'uw-advert': {
level1: {
label: '利用维基百科来发布广告或推广',
summary: '提醒:利用维基百科来发布广告或推广'
},
level2: {
label: '利用维基百科来发布广告或推广',
summary: '注意:利用维基百科来发布广告或推广'
},
level3: {
label: '利用维基百科来发布广告或推广',
summary: '警告:利用维基百科来发布广告或推广'
},
level4: {
label: '利用维基百科来发布广告或推广',
summary: '最后警告:利用维基百科来发布广告或推广'
}
},
'uw-npov': {
level1: {
label: '不遵守中立的观点方针',
summary: '提醒:不遵守中立的观点方针'
},
level2: {
label: '不遵守中立的观点方针',
summary: '注意:不遵守中立的观点方针'
},
level3: {
label: '违反中立的观点方针',
summary: '警告:违反中立的观点方针'
},
level4: {
label: '违反中立的观点方针',
summary: '最后警告:违反中立的观点方针'
}
}
},
'加插不实及/或诽谤文字': {
'uw-unsourced': {
level1: {
label: '加入没有可靠来源佐证的内容',
summary: '提醒:加入没有可靠来源佐证的内容'
},
level2: {
label: '加入没有可靠来源佐证的内容',
summary: '注意:加入没有可靠来源佐证的内容'
},
level3: {
label: '加入没有可靠来源佐证的内容',
summary: '警告:加入没有可靠来源佐证的内容'
}
},
'uw-error': {
level1: {
label: '故意加入不实内容',
summary: '提醒:故意加入不实内容'
},
level2: {
label: '故意加入不实内容',
summary: '注意:故意加入不实内容'
},
level3: {
label: '故意加入不实内容',
summary: '警告:故意加入不实内容'
}
},
'uw-biog': {
level1: {
label: '在生者传记中加入没有可靠来源佐证而且可能引发争议的内容',
summary: '提醒:在生者传记中加入没有可靠来源佐证而且可能引发争议的内容'
},
level2: {
label: '在生者传记中加入没有可靠来源佐证而且可能引发争议的内容',
summary: '注意:在生者传记中加入没有可靠来源佐证而且可能引发争议的内容'
},
level3: {
label: '在生者传记中加入没有可靠来源佐证而且带有争议的内容',
summary: '警告:在生者传记中加入没有可靠来源佐证而且可能引发争议的内容'
},
level4: {
label: '加入有关在生人物而又缺乏来源的资料',
summary: '最后警告:加入有关在生人物而又缺乏来源的资料'
},
level4im: {
label: '加入有关在生人物而又缺乏来源的资料',
summary: '唯一警告:加入有关在生人物而又缺乏来源的资料'
}
},
'uw-defamatory': {
level1: {
label: '加入诽谤内容',
summary: '提醒:加入诽谤内容'
},
level2: {
label: '加入诽谤内容',
summary: '注意:加入诽谤内容'
},
level3: {
label: '加入诽谤内容',
summary: '警告:加入诽谤内容'
},
level4: {
label: '加入诽谤内容',
summary: '最后警告:加入诽谤内容'
},
level4im: {
label: '加入诽谤内容',
summary: '唯一警告:加入诽谤内容'
}
}
},
'翻译品质': {
'uw-roughtranslation': {
level1: {
label: '您翻译的质量有待改善',
summary: '提醒:您翻译的质量有待改善'
},
level2: {
label: '粗劣翻译',
summary: '注意:粗劣翻译'
},
level3: {
label: '粗劣翻译',
summary: '警告:粗劣翻译'
}
}
},
'非能接受且违反方针或指引的单方面行为或操作': {
'uw-notcensored': {
level1: {
label: '因为“内容使人反感”而删除条目内容',
summary: '提醒:审查条目内容'
},
level2: {
label: '内容审查',
summary: '注意:内容审查'
},
level3: {
label: '审查内容',
summary: '警告:审查内容'
}
},
'uw-mos': {
level1: {
label: '不恰当的条目格式、日期、语言等',
summary: '提醒:不恰当的条目格式、日期、语言等'
},
level2: {
label: '不恰当的条目格式、日期、语言等',
summary: '注意:不恰当的条目格式、日期、语言等'
},
level3: {
label: '违反格式、日期、语言等规定',
summary: '警告:违反格式、日期、语言等规定'
},
level4: {
label: '违反格式、日期、语言等相关规定',
summary: '最后警告:违反格式、日期、语言等相关规定'
}
},
'uw-move': {
level1: {
label: '无故移动条目/新名称不符合命名规范',
summary: '提醒:不恰当地移动页面'
},
level2: {
label: '把页面移动到不恰当、违反命名常规或违反共识的标题',
summary: '注意:不恰当地移动页面'
},
level3: {
label: '不恰当地移动页面',
summary: '警告:不恰当地移动页面'
},
level4: {
label: '不恰当地移动页面',
summary: '最后警告:不恰当地移动页面'
},
level4im: {
label: '不恰当地移动页面',
summary: '唯一警告:不恰当地移动页面'
}
},
'uw-cd': {
level1: {
label: '清空讨论页',
summary: '提醒:清空讨论页'
},
level2: {
label: '清空讨论页',
summary: '注意:清空讨论页'
},
level3: {
label: '清空讨论页',
summary: '警告:清空讨论页'
}
},
'uw-chat': {
level1: {
label: '在讨论页发表与改善条目无关的内容',
summary: '提醒:在讨论页发表与改善条目无关的内容'
},
level2: {
label: '在讨论页发表与改善条目无关的内容',
summary: '注意:在讨论页发表与改善条目无关的内容'
},
level3: {
label: '在讨论页发表无关内容',
summary: '警告:在讨论页发表无关内容'
},
level4: {
label: '在讨论页进行不当讨论',
summary: '最后警告:在讨论页进行不当讨论'
}
},
'uw-tpv': {
level1: {
label: '修改他人留言',
summary: '提醒:修改他人留言'
},
level2: {
label: '修改他人留言',
summary: '注意:修改他人留言'
},
level3: {
label: '修改他人留言',
summary: '警告:修改他人留言'
}
},
'uw-afd': {
level1: {
label: '移除{{afd}}(页面存废讨论)模板',
summary: '提醒:移除{{afd}}(页面存废讨论)模板'
},
level2: {
label: '移除{{afd}}(页面存废讨论)模板',
summary: '注意:移除{{afd}}(页面存废讨论)模板'
},
level3: {
label: '移除{{afd}}(页面存废讨论)模板',
summary: '警告:移除{{afd}}(页面存废讨论)模板'
},
level4: {
label: '移除{{afd}}模板',
summary: '最后警告:移除{{afd}}模板'
}
},
'uw-speedy': {
level1: {
label: '移除{{delete}}(快速删除)模板',
summary: '提醒:移除{{delete}}(快速删除)模板'
},
level2: {
label: '移除{{delete}}(快速删除)模板',
summary: '注意:移除{{delete}}(快速删除)模板'
},
level3: {
label: '移除{{delete}}(快速删除)模板',
summary: '警告:移除{{delete}}(快速删除)模板'
},
level4: {
label: '移除{{delete}}模板',
summary: '最后警告:移除{{delete}}模板'
}
}
},
'对其他用户和条目的态度': {
'uw-npa': {
level1: {
label: '针对用户的人身攻击',
summary: '提醒:针对用户的人身攻击'
},
level2: {
label: '针对用户的人身攻击',
summary: '注意:针对用户的人身攻击'
},
level3: {
label: '针对用户的人身攻击',
summary: '警告:针对用户的人身攻击'
},
level4: {
label: '针对用户的人身攻击',
summary: '最后警告:针对用户的人身攻击'
},
level4im: {
label: '针对用户的人身攻击',
summary: '唯一警告:针对用户的人身攻击'
}
},
'uw-agf': {
level1: {
label: '没有假定善意',
summary: '提醒:没有假定善意'
},
level2: {
label: '没有假定善意',
summary: '注意:没有假定善意'
},
level3: {
label: '没有假定善意',
summary: '警告:没有假定善意'
}
},
'uw-own': {
level1: {
label: '主张条目所有权',
summary: '提醒:主张条目所有权'
},
level2: {
label: '主张条目的所有权',
summary: '注意:主张条目的所有权'
},
level3: {
label: '主张条目的所有权',
summary: '警告:主张条目的所有权'
}
},
'uw-tempabuse': {
level1: {
label: '不当使用警告或封禁模板',
summary: '提醒:不当使用警告或封禁模板'
},
level2: {
label: '不当使用警告或封禁模板',
summary: '注意:不当使用警告或封禁模板'
},
level3: {
label: '不当使用警告或封禁模板',
summary: '警告:不当使用警告或封禁模板'
},
level4: {
label: '不当使用警告或封禁模板',
summary: '最后警告:不当使用警告或封禁模板'
},
level4im: {
label: '不当使用警告或封禁模板',
summary: '唯一警告:不当使用警告或封禁模板'
}
}
}
},
singlenotice: {
'uw-2redirect': {
label: '在移动页面后应该修复双重重定向',
summary: '提醒:在移动页面后应该修复双重重定向'
},
'uw-aiv': {
label: '举报的并不是破坏者,或者举报破坏前未进行警告',
summary: '提醒:不恰当地举报破坏'
},
'uw-articlesig': {
label: '在条目中签名',
summary: '提醒:在条目中签名'
},
'uw-autobiography': {
label: '建立自传',
summary: '提醒:建立自传'
},
'uw-badcat': {
label: '加入错误的页面分类',
summary: '提醒:加入错误的页面分类'
},
'uw-bite': {
label: '伤害新手',
summary: '提醒:伤害新手'
},
'uw-booktitle': {
label: '没有使用书名号来标示书籍、电影、音乐专辑等',
summary: '提醒:没有使用书名号来标示书籍、电影、音乐专辑等'
},
'uw-c&pmove': {
label: '剪贴移动',
summary: '提醒:剪贴移动'
},
'uw-chinese': {
label: '请使用标准汉语沟通',
summary: '提醒:请使用标准汉语沟通'
},
'uw-coi': {
label: '利益冲突',
summary: '提醒:利益冲突'
},
'uw-concovid19': {
label: '违反COVID-19条目共识',
summary: '提醒:违反COVID-19条目共识'
},
'uw-copyright-friendly': {
label: '初次加入侵犯版权的内容',
summary: '提醒:初次加入侵犯版权的内容'
},
'uw-copyviorewrite': {
label: '在侵权页面直接重写条目',
summary: '提醒:在侵权页面直接重写条目'
},
'uw-crystal': {
label: '加入臆测或未确认的讯息',
summary: '提醒:加入臆测或未确认的讯息'
},
'uw-csd': {
label: '快速删除理由不当',
summary: '提醒:快速删除理由不当'
},
'uw-dab': {
label: '消歧义页格式错误',
summary: '提醒:消歧义页格式错误'
},
'uw-editsummary': {
label: '没有使用编辑摘要',
summary: '提醒:没有使用编辑摘要'
},
'uw-hangon': {
label: '没有在讨论页说明暂缓快速删除理由',
summary: '提醒:没有在讨论页说明暂缓快速删除理由'
},
'uw-lang': {
label: '不必要地将文字换成简体或繁体中文',
summary: '提醒:不必要地将文字换成简体或繁体中文'
},
'uw-langmove': {
label: '不必要地将标题换成简体或繁体中文',
summary: '提醒:不必要地将标题换成简体或繁体中文'
},
'uw-linking': {
label: '过度加入红字连结或重复蓝字连结',
summary: '提醒:过度加入红字连结或重复蓝字连结'
},
'uw-minor': {
label: '不适当地使用小修改选项',
summary: '提醒:不适当地使用小修改选项'
},
'uw-notaiv': {
label: '向“当前的破坏”中报告的是用户纷争而不是破坏',
summary: '提醒:向“当前的破坏”中报告的是用户纷争而不是破坏'
},
'uw-notvote': {
label: '我们以共识处事,而不仅仅是投票',
summary: '提醒:我们以共识处事,而不仅仅是投票'
},
'uw-preview': {
label: '请使用预览按钮来避免不必要的错误',
summary: '提醒:请使用预览按钮来避免不必要的错误'
},
'uw-sandbox': {
label: '移除沙盒的置顶模板{{sandbox}}',
summary: '提醒:移除沙盒的置顶模板{{sandbox}}'
},
'uw-selfrevert': {
label: '感谢您自行回退自己的测试,以后不要再这样做了',
summary: '提醒:回退个人的测试'
},
'uw-subst': {
label: '谨记要替代模板(subst)',
summary: '提醒:谨记要替代模板'
},
'uw-talkinarticle': {
label: '在条目页中留下意见',
summary: '提醒:在条目页中留下意见'
},
'uw-tilde': {
label: '没有在讨论页上签名',
summary: '提醒:没有在讨论页上签名'
},
'uw-translated': {
label: '翻译条目未标注原作者',
summary: '提醒:翻译条目未标注原作者'
},
'uw-uaa': {
label: '向需要管理员注意的用户名报告的用户名称并不违反方针',
summary: '提醒:向需要管理员注意的用户名报告的用户名称并不违反方针'
},
'uw-warn': {
label: '警告破坏用户',
summary: '提醒:警告破坏用户'
},
'uw-mosiw': {
label: '不要使用跨语言链接',
summary: '提醒:不要使用跨语言链接'
},
'uw-badtwinkle': {
label: '不恰当地使用Twinkle警告别人',
summary: '提醒:不恰当地使用Twinkle警告别人'
}
},
singlewarn: {
'uw-3rr': {
label: '用户潜在违反回退不过三原则的可能性',
summary: '警告:用户潜在违反回退不过三原则的可能性'
},
'uw-attack': {
label: '建立人身攻击页面',
summary: '警告:建立人身攻击页面',
suppressArticleInSummary: true
},
'uw-bv': {
label: '公然地破坏',
summary: '警告:公然地破坏'
},
'uw-canvass': {
label: '不恰当地拉票',
summary: '警告:不恰当地拉票'
},
'uw-copyright': {
label: '侵犯版权',
summary: '警告:侵犯版权'
},
'uw-copyright-link': {
label: '连结到有版权的材料',
summary: '警告:连结到有版权的材料'
},
'uw-fakesource': {
label: '虚构资料来源或引文',
summary: '警告:虚构资料来源或引文'
},
'uw-hoax': {
label: '建立恶作剧',
summary: '警告:建立恶作剧'
},
'uw-incompletecite': {
label: '列出的资料来源欠缺若干详情而不易查找',
summary: '警告:列出的资料来源欠缺若干详情而不易查找'
},
'uw-legal': {
label: '诉诸法律威胁',
summary: '警告:诉诸法律威胁'
},
'uw-longterm': {
label: '长期的破坏',
summary: '警告:长期的破坏'
},
'uw-multipleIPs': {
label: '使用多个IP地址进行破坏',
summary: '警告:使用多个IP地址进行破坏'
},
'uw-npov-tvd': {
label: '在剧集条目中加入奸角等非中立描述',
summary: '警告:在剧集条目中加入奸角等非中立描述'
},
'uw-owntalk': {
label: '匿名用户移除自己讨论页上7日内的讨论',
summary: '警告:匿名用户移除自己讨论页上7日内的讨论'
},
'uw-pinfo': {
label: '张贴他人隐私',
summary: '警告:张贴他人隐私'
},
'uw-upv': {
label: '破坏他人用户页',
summary: '警告:破坏他人用户页'
},
'uw-selfinventedname': {
label: '不适当地自创新名词、新译名',
summary: '警告:不适当地自创新名词、新译名'
},
'uw-substub': {
label: '创建小小作品',
summary: '警告:创建小小作品'
},
'uw-username': {
label: '使用不恰当的用户名',
summary: '警告:使用不恰当的用户名',
suppressArticleInSummary: true
},
'uw-wrongsummary': {
label: '在编辑摘要制造不适当的内容',
summary: '警告:在编辑摘要制造不适当的内容'
}
}
}, {
levels: {
'不同類別的非建設編輯': {
'uw-vandalism': {
level1: {
label: '明顯的破壞',
summary: '提醒:明顯破壞'
},
level2: {
label: '明顯的破壞',
summary: '注意:明顯破壞'
},
level3: {
label: '惡意破壞',
summary: '警告:惡意破壞'
},
level4: {
label: '惡意破壞',
summary: '最後警告:惡意破壞'
},
level4im: {
label: '惡意破壞',
summary: '唯一警告:惡意破壞'
}
},
'uw-test': {
level1: {
label: '進行編輯測試而未及時清理',
summary: '提醒:進行編輯測試而未及時清理'
},
level2: {
label: '進行損毀性的編輯測試',
summary: '注意:進行編輯測試'
},
level3: {
label: '編輯測試',
summary: '警告:編輯測試'
},
level4: {
label: '編輯測試',
summary: '最後警告:編輯測試'
}
},
'uw-delete': {
level1: {
label: '不恰當地移除頁面內容、模板或資料',
summary: '提醒:不恰當地移除頁面內容、模板或資料'
},
level2: {
label: '不恰當地移除頁面內容、模板或資料',
summary: '注意:不恰當地移除頁面內容、模板或資料'
},
level3: {
label: '不恰當地移除頁面內容、模板或資料',
summary: '警告:不恰當地移除頁面內容、模板或資料'
},
level4: {
label: '移除頁面、移除內容或模板',
summary: '最後警告:移除頁面、移除內容或模板'
},
level4im: {
label: '移除頁面內容、模板或資料',
summary: '唯一警告:移除頁面內容、模板或資料'
}
},
'uw-redirect': {
level1: {
label: '建立破壞性的重定向',
summary: '提醒:建立破壞性的重定向'
},
level2: {
label: '建立惡意重定向',
summary: '注意:建立惡意重定向'
},
level3: {
label: '建立惡意重定向',
summary: '警告:建立惡意重定向'
},
level4: {
label: '建立惡意重定向',
summary: '最後警告:建立惡意重定向'
},
level4im: {
label: '建立惡意重定向',
summary: '唯一警告:建立惡意重定向'
}
},
'uw-tdel': {
level1: {
label: '在問題仍未解決的情況下移除維護性模板',
summary: '提醒:移除維護性模板'
},
level2: {
label: '在問題仍未解決的情況下移除維護性模板',
summary: '注意:移除維護性模板'
},
level3: {
label: '移除維護性模板',
summary: '警告:移除維護性模板'
},
level4: {
label: '移除維護性模板',
summary: '最後警告:移除維護性模板'
}
},
'uw-joke': {
level1: {
label: '在百科全書內容中加入玩笑',
summary: '提醒:加入不當玩笑'
},
level2: {
label: '在百科全書內容中加入玩笑',
summary: '注意:加入不當玩笑'
},
level3: {
label: '在百科全書內容中加入不當玩笑',
summary: '警告:在百科全書內容中加入不當玩笑'
},
level4: {
label: '在百科全書內容中加入不當玩笑',
summary: '最後警告:在百科全書內容中加入不當玩笑'
},
level4im: {
label: '加入不當玩笑',
summary: '唯一警告:加入不當玩笑'
}
},
'uw-create': {
level1: {
label: '建立不當頁面',
summary: '提醒:建立不當頁面'
},
level2: {
label: '建立不當頁面',
summary: '注意:建立不當頁面'
},
level3: {
label: '建立不當頁面',
summary: '警告:建立不當頁面'
},
level4: {
label: '建立不當頁面',
summary: '最後警告:建立不當頁面'
},
level4im: {
label: '建立不當頁面',
summary: '唯一警告:建立不當頁面'
}
},
'uw-upload': {
level1: {
label: '上傳不當圖像',
summary: '提醒:上傳不當圖像'
},
level2: {
label: '上傳不當圖像',
summary: '注意:上傳不當圖像'
},
level3: {
label: '上傳不當圖像',
summary: '警告:上傳不當圖像'
},
level4: {
label: '上傳不當圖像',
summary: '最後警告:上傳不當圖像'
},
level4im: {
label: '上傳不當圖像',
summary: '唯一警告:上傳不當圖像'
}
},
'uw-image': {
level1: {
label: '在頁面中加入不當圖片',
summary: '提醒:在頁面中加入不當圖片'
},
level2: {
label: '在頁面中加入不當圖片',
summary: '注意:在頁面中加入不當圖片'
},
level3: {
label: '在頁面中加入不當圖片',
summary: '警告:在頁面中加入不當圖片'
},
level4: {
label: '在頁面中加入不當圖片',
summary: '最後警告:在頁面中加入不當圖片'
},
level4im: {
label: '加入不恰當的圖片',
summary: '唯一警告:加入不恰當的圖片'
}
},
'uw-nor': {
level1: {
label: '在條目中加入原創研究',
summary: '提醒:在條目中加入原創研究'
},
level2: {
label: '在條目中加入原創研究',
summary: '注意:在條目中加入原創研究'
},
level3: {
label: '在條目中加入原創研究',
summary: '警告:在條目中加入原創研究'
}
},
'uw-politicalbias': {
level1: {
label: '違反兩岸四地用語、朝鮮半島用語等相關規定',
summary: '提醒:違反兩岸四地用語、朝鮮半島用語等相關規定'
},
level2: {
label: '違反兩岸四地用語、朝鮮半島用語等相關規定',
summary: '注意:違反兩岸四地用語、朝鮮半島用語等相關規定'
},
level3: {
label: '違反兩岸四地用語、朝鮮半島用語等相關規定',
summary: '警告:違反兩岸四地用語、朝鮮半島用語等相關規定'
},
level4: {
label: '違反兩岸四地用語、朝鮮半島用語等相關規定',
summary: '最後警告:違反兩岸四地用語、朝鮮半島用語等相關規定'
},
level4im: {
label: '違反兩岸四地用語、朝鮮半島用語等相關規定',
summary: '唯一警告:違反兩岸四地用語、朝鮮半島用語等相關規定'
}
}
},
'增加商品或政治廣告': {
'uw-spam': {
level1: {
label: '增加不合適的外部連結',
summary: '提醒:增加不合適的外部連結'
},
level2: {
label: '增加垃圾連結',
summary: '注意:增加垃圾連結'
},
level3: {
label: '增加垃圾連結',
summary: '警告:增加垃圾連結'
},
level4: {
label: '增加垃圾連結',
summary: '最後警告:增加垃圾連結'
},
level4im: {
label: '增加垃圾連結',
summary: '唯一警告:增加垃圾連結'
}
},
'uw-advert': {
level1: {
label: '利用維基百科來發布廣告或推廣',
summary: '提醒:利用維基百科來發布廣告或推廣'
},
level2: {
label: '利用維基百科來發布廣告或推廣',
summary: '注意:利用維基百科來發布廣告或推廣'
},
level3: {
label: '利用維基百科來發布廣告或推廣',
summary: '警告:利用維基百科來發布廣告或推廣'
},
level4: {
label: '利用維基百科來發布廣告或推廣',
summary: '最後警告:利用維基百科來發布廣告或推廣'
}
},
'uw-npov': {
level1: {
label: '不遵守中立的觀點方針',
summary: '提醒:不遵守中立的觀點方針'
},
level2: {
label: '不遵守中立的觀點方針',
summary: '注意:不遵守中立的觀點方針'
},
level3: {
label: '違反中立的觀點方針',
summary: '警告:違反中立的觀點方針'
},
level4: {
label: '違反中立的觀點方針',
summary: '最後警告:違反中立的觀點方針'
}
}
},
'加插不實及/或誹謗文字': {
'uw-unsourced': {
level1: {
label: '加入沒有可靠來源佐證的內容',
summary: '提醒:加入沒有可靠來源佐證的內容'
},
level2: {
label: '加入沒有可靠來源佐證的內容',
summary: '注意:加入沒有可靠來源佐證的內容'
},
level3: {
label: '加入沒有可靠來源佐證的內容',
summary: '警告:加入沒有可靠來源佐證的內容'
}
},
'uw-error': {
level1: {
label: '故意加入不實內容',
summary: '提醒:故意加入不實內容'
},
level2: {
label: '故意加入不實內容',
summary: '注意:故意加入不實內容'
},
level3: {
label: '故意加入不實內容',
summary: '警告:故意加入不實內容'
}
},
'uw-biog': {
level1: {
label: '在生者傳記中加入沒有可靠來源佐證而且可能引發爭議的內容',
summary: '提醒:在生者傳記中加入沒有可靠來源佐證而且可能引發爭議的內容'
},
level2: {
label: '在生者傳記中加入沒有可靠來源佐證而且可能引發爭議的內容',
summary: '注意:在生者傳記中加入沒有可靠來源佐證而且可能引發爭議的內容'
},
level3: {
label: '在生者傳記中加入沒有可靠來源佐證而且帶有爭議的內容',
summary: '警告:在生者傳記中加入沒有可靠來源佐證而且可能引發爭議的內容'
},
level4: {
label: '加入有關在生人物而又缺乏來源的資料',
summary: '最後警告:加入有關在生人物而又缺乏來源的資料'
},
level4im: {
label: '加入有關在生人物而又缺乏來源的資料',
summary: '唯一警告:加入有關在生人物而又缺乏來源的資料'
}
},
'uw-defamatory': {
level1: {
label: '加入誹謗內容',
summary: '提醒:加入誹謗內容'
},
level2: {
label: '加入誹謗內容',
summary: '注意:加入誹謗內容'
},
level3: {
label: '加入誹謗內容',
summary: '警告:加入誹謗內容'
},
level4: {
label: '加入誹謗內容',
summary: '最後警告:加入誹謗內容'
},
level4im: {
label: '加入誹謗內容',
summary: '唯一警告:加入誹謗內容'
}
}
},
'翻譯品質': {
'uw-roughtranslation': {
level1: {
label: '您翻譯的質量有待改善',
summary: '提醒:您翻譯的質量有待改善'
},
level2: {
label: '粗劣翻譯',
summary: '注意:粗劣翻譯'
},
level3: {
label: '粗劣翻譯',
summary: '警告:粗劣翻譯'
}
}
},
'非能接受且違反方針或指引的單方面行為或操作': {
'uw-notcensored': {
level1: {
label: '因為「內容使人反感」而刪除條目內容',
summary: '提醒:審查條目內容'
},
level2: {
label: '內容審查',
summary: '注意:內容審查'
},
level3: {
label: '審查內容',
summary: '警告:審查內容'
}
},
'uw-mos': {
level1: {
label: '不恰當的條目格式、日期、語言等',
summary: '提醒:不恰當的條目格式、日期、語言等'
},
level2: {
label: '不恰當的條目格式、日期、語言等',
summary: '注意:不恰當的條目格式、日期、語言等'
},
level3: {
label: '違反格式、日期、語言等規定',
summary: '警告:違反格式、日期、語言等規定'
},
level4: {
label: '違反格式、日期、語言等相關規定',
summary: '最後警告:違反格式、日期、語言等相關規定'
}
},
'uw-move': {
level1: {
label: '無故移動條目/新名稱不符合命名規範',
summary: '提醒:不恰當地移動頁面'
},
level2: {
label: '把頁面移動到不恰當、違反命名常規或違反共識的標題',
summary: '注意:不恰當地移動頁面'
},
level3: {
label: '不恰當地移動頁面',
summary: '警告:不恰當地移動頁面'
},
level4: {
label: '不恰當地移動頁面',
summary: '最後警告:不恰當地移動頁面'
},
level4im: {
label: '不恰當地移動頁面',
summary: '唯一警告:不恰當地移動頁面'
}
},
'uw-cd': {
level1: {
label: '清空討論頁',
summary: '提醒:清空討論頁'
},
level2: {
label: '清空討論頁',
summary: '注意:清空討論頁'
},
level3: {
label: '清空討論頁',
summary: '警告:清空討論頁'
}
},
'uw-chat': {
level1: {
label: '在討論頁發表與改善條目無關的內容',
summary: '提醒:在討論頁發表與改善條目無關的內容'
},
level2: {
label: '在討論頁發表與改善條目無關的內容',
summary: '注意:在討論頁發表與改善條目無關的內容'
},
level3: {
label: '在討論頁發表無關內容',
summary: '警告:在討論頁發表無關內容'
},
level4: {
label: '在討論頁進行不當討論',
summary: '最後警告:在討論頁進行不當討論'
}
},
'uw-tpv': {
level1: {
label: '修改他人留言',
summary: '提醒:修改他人留言'
},
level2: {
label: '修改他人留言',
summary: '注意:修改他人留言'
},
level3: {
label: '修改他人留言',
summary: '警告:修改他人留言'
}
},
'uw-afd': {
level1: {
label: '移除{{afd}}(頁面存廢討論)模板',
summary: '提醒:移除{{afd}}(頁面存廢討論)模板'
},
level2: {
label: '移除{{afd}}(頁面存廢討論)模板',
summary: '注意:移除{{afd}}(頁面存廢討論)模板'
},
level3: {
label: '移除{{afd}}(頁面存廢討論)模板',
summary: '警告:移除{{afd}}(頁面存廢討論)模板'
},
level4: {
label: '移除{{afd}}模板',
summary: '最後警告:移除{{afd}}模板'
}
},
'uw-speedy': {
level1: {
label: '移除{{delete}}(快速刪除)模板',
summary: '提醒:移除{{delete}}(快速刪除)模板'
},
level2: {
label: '移除{{delete}}(快速刪除)模板',
summary: '注意:移除{{delete}}(快速刪除)模板'
},
level3: {
label: '移除{{delete}}(快速刪除)模板',
summary: '警告:移除{{delete}}(快速刪除)模板'
},
level4: {
label: '移除{{delete}}模板',
summary: '最後警告:移除{{delete}}模板'
}
}
},
'對其他用戶和條目的態度': {
'uw-npa': {
level1: {
label: '針對用戶的人身攻擊',
summary: '提醒:針對用戶的人身攻擊'
},
level2: {
label: '針對用戶的人身攻擊',
summary: '注意:針對用戶的人身攻擊'
},
level3: {
label: '針對用戶的人身攻擊',
summary: '警告:針對用戶的人身攻擊'
},
level4: {
label: '針對用戶的人身攻擊',
summary: '最後警告:針對用戶的人身攻擊'
},
level4im: {
label: '針對用戶的人身攻擊',
summary: '唯一警告:針對用戶的人身攻擊'
}
},
'uw-agf': {
level1: {
label: '沒有假定善意',
summary: '提醒:沒有假定善意'
},
level2: {
label: '沒有假定善意',
summary: '注意:沒有假定善意'
},
level3: {
label: '沒有假定善意',
summary: '警告:沒有假定善意'
}
},
'uw-own': {
level1: {
label: '主張條目所有權',
summary: '提醒:主張條目所有權'
},
level2: {
label: '主張條目的所有權',
summary: '注意:主張條目的所有權'
},
level3: {
label: '主張條目的所有權',
summary: '警告:主張條目的所有權'
}
},
'uw-tempabuse': {
level1: {
label: '不當使用警告或封禁模板',
summary: '提醒:不當使用警告或封禁模板'
},
level2: {
label: '不當使用警告或封禁模板',
summary: '注意:不當使用警告或封禁模板'
},
level3: {
label: '不當使用警告或封禁模板',
summary: '警告:不當使用警告或封禁模板'
},
level4: {
label: '不當使用警告或封禁模板',
summary: '最後警告:不當使用警告或封禁模板'
},
level4im: {
label: '不當使用警告或封禁模板',
summary: '唯一警告:不當使用警告或封禁模板'
}
}
}
},
singlenotice: {
'uw-2redirect': {
label: '在移動頁面後應該修復雙重重定向',
summary: '提醒:在移動頁面後應該修復雙重重定向'
},
'uw-aiv': {
label: '舉報的並不是破壞者,或者舉報破壞前未進行警告',
summary: '提醒:不恰當地舉報破壞'
},
'uw-articlesig': {
label: '在條目中簽名',
summary: '提醒:在條目中簽名'
},
'uw-autobiography': {
label: '建立自傳',
summary: '提醒:建立自傳'
},
'uw-badcat': {
label: '加入錯誤的頁面分類',
summary: '提醒:加入錯誤的頁面分類'
},
'uw-bite': {
label: '傷害新手',
summary: '提醒:傷害新手'
},
'uw-booktitle': {
label: '沒有使用書名號來標示書籍、電影、音樂專輯等',
summary: '提醒:沒有使用書名號來標示書籍、電影、音樂專輯等'
},
'uw-c&pmove': {
label: '剪貼移動',
summary: '提醒:剪貼移動'
},
'uw-chinese': {
label: '請使用標準漢語溝通',
summary: '提醒:請使用標準漢語溝通'
},
'uw-coi': {
label: '利益衝突',
summary: '提醒:利益衝突'
},
'uw-concovid19': {
label: '違反COVID-19條目共識',
summary: '提醒:違反COVID-19條目共識'
},
'uw-copyright-friendly': {
label: '初次加入侵犯版權的內容',
summary: '提醒:初次加入侵犯版權的內容'
},
'uw-copyviorewrite': {
label: '在侵權頁面直接重寫條目',
summary: '提醒:在侵權頁面直接重寫條目'
},
'uw-crystal': {
label: '加入臆測或未確認的訊息',
summary: '提醒:加入臆測或未確認的訊息'
},
'uw-csd': {
label: '快速刪除理由不當',
summary: '提醒:快速刪除理由不當'
},
'uw-dab': {
label: '消歧義頁格式錯誤',
summary: '提醒:消歧義頁格式錯誤'
},
'uw-editsummary': {
label: '沒有使用編輯摘要',
summary: '提醒:沒有使用編輯摘要'
},
'uw-hangon': {
label: '沒有在討論頁說明暫緩快速刪除理由',
summary: '提醒:沒有在討論頁說明暫緩快速刪除理由'
},
'uw-lang': {
label: '不必要地將文字換成簡體或繁體中文',
summary: '提醒:不必要地將文字換成簡體或繁體中文'
},
'uw-langmove': {
label: '不必要地將標題換成簡體或繁體中文',
summary: '提醒:不必要地將標題換成簡體或繁體中文'
},
'uw-linking': {
label: '過度加入紅字連結或重複藍字連結',
summary: '提醒:過度加入紅字連結或重複藍字連結'
},
'uw-minor': {
label: '不適當地使用小修改選項',
summary: '提醒:不適當地使用小修改選項'
},
'uw-notaiv': {
label: '向「當前的破壞」中報告的是用戶紛爭而不是破壞',
summary: '提醒:向「當前的破壞」中報告的是用戶紛爭而不是破壞'
},
'uw-notvote': {
label: '我們以共識處事,而不僅僅是投票',
summary: '提醒:我們以共識處事,而不僅僅是投票'
},
'uw-preview': {
label: '請使用預覽按鈕來避免不必要的錯誤',
summary: '提醒:請使用預覽按鈕來避免不必要的錯誤'
},
'uw-sandbox': {
label: '移除沙盒的置頂模板{{sandbox}}',
summary: '提醒:移除沙盒的置頂模板{{sandbox}}'
},
'uw-selfrevert': {
label: '感謝您自行回退自己的測試,以後不要再這樣做了',
summary: '提醒:回退個人的測試'
},
'uw-subst': {
label: '謹記要替代模板(subst)',
summary: '提醒:謹記要替代模板'
},
'uw-talkinarticle': {
label: '在條目頁中留下意見',
summary: '提醒:在條目頁中留下意見'
},
'uw-tilde': {
label: '沒有在討論頁上簽名',
summary: '提醒:沒有在討論頁上簽名'
},
'uw-translated': {
label: '翻譯條目未標註原作者',
summary: '提醒:翻譯條目未標註原作者'
},
'uw-uaa': {
label: '向需要管理員注意的用戶名報告的用戶名稱並不違反方針',
summary: '提醒:向需要管理員注意的用戶名報告的用戶名稱並不違反方針'
},
'uw-warn': {
label: '警告破壞用戶',
summary: '提醒:警告破壞用戶'
},
'uw-mosiw': {
label: '不要使用跨語言連結',
summary: '提醒:不要使用跨語言連結'
},
'uw-badtwinkle': {
label: '不恰當地使用Twinkle警告別人',
summary: '提醒:不恰當地使用Twinkle警告別人'
}
},
singlewarn: {
'uw-3rr': {
label: '用戶潛在違反回退不過三原則的可能性',
summary: '警告:用戶潛在違反回退不過三原則的可能性'
},
'uw-attack': {
label: '建立人身攻擊頁面',
summary: '警告:建立人身攻擊頁面',
suppressArticleInSummary: true
},
'uw-bv': {
label: '公然地破壞',
summary: '警告:公然地破壞'
},
'uw-canvass': {
label: '不恰當地拉票',
summary: '警告:不恰當地拉票'
},
'uw-copyright': {
label: '侵犯版權',
summary: '警告:侵犯版權'
},
'uw-copyright-link': {
label: '連結到有版權的材料',
summary: '警告:連結到有版權的材料'
},
'uw-fakesource': {
label: '虛構資料來源或引文',
summary: '警告:虛構資料來源或引文'
},
'uw-hoax': {
label: '建立惡作劇',
summary: '警告:建立惡作劇'
},
'uw-incompletecite': {
label: '列出的資料來源欠缺若干詳情而不易查找',
summary: '警告:列出的資料來源欠缺若干詳情而不易查找'
},
'uw-legal': {
label: '訴諸法律威脅',
summary: '警告:訴諸法律威脅'
},
'uw-longterm': {
label: '長期的破壞',
summary: '警告:長期的破壞'
},
'uw-multipleIPs': {
label: '使用多個IP地址進行破壞',
summary: '警告:使用多個IP地址進行破壞'
},
'uw-npov-tvd': {
label: '在劇集條目中加入奸角等非中立描述',
summary: '警告:在劇集條目中加入奸角等非中立描述'
},
'uw-owntalk': {
label: '匿名使用者移除自己討論頁上7日內的討論',
summary: '警告:匿名使用者移除自己討論頁上7日內的討論'
},
'uw-pinfo': {
label: '張貼他人隱私',
summary: '警告:張貼他人隱私'
},
'uw-upv': {
label: '破壞他人用戶頁',
summary: '警告:破壞他人用戶頁'
},
'uw-selfinventedname': {
label: '不適當地自創新名詞、新譯名',
summary: '警告:不適當地自創新名詞、新譯名'
},
'uw-substub': {
label: '建立小小作品',
summary: '警告:建立小小作品'
},
'uw-username': {
label: '使用不恰當的用戶名',
summary: '警告:使用不恰當的用戶名',
suppressArticleInSummary: true
},
'uw-wrongsummary': {
label: '在編輯摘要製造不適當的內容',
summary: '警告:在編輯摘要製造不適當的內容'
}
}
});
// Used repeatedly below across menu rebuilds
Twinkle.warn.prev_article = null;
Twinkle.warn.prev_reason = null;
Twinkle.warn.talkpageObj = null;
Twinkle.warn.callback.change_category = function twinklewarnCallbackChangeCategory(e) {
var value = e.target.value;
var sub_group = e.target.root.sub_group;
sub_group.main_group = value;
var old_subvalue = sub_group.value;
var old_subvalue_re;
if (old_subvalue) {
if (value === 'kitchensink') { // Exact match possible in kitchensink menu
old_subvalue_re = new RegExp(mw.util.escapeRegExp(old_subvalue));
} else {
old_subvalue = old_subvalue.replace(/\d*(im)?$/, '');
old_subvalue_re = new RegExp(mw.util.escapeRegExp(old_subvalue) + '(\\d*(?:im)?)$');
}
}
while (sub_group.hasChildNodes()) {
sub_group.removeChild(sub_group.firstChild);
}
var selected = false;
// worker function to create the combo box entries
var createEntries = function(contents, container, wrapInOptgroup, val) {
val = typeof val !== 'undefined' ? val : value; // IE doesn't support default parameters
// level2->2, singlewarn->''; also used to distinguish the
// scaled levels from singlenotice, singlewarn, and custom
var level = val.replace(/^\D+/g, '');
// due to an apparent iOS bug, we have to add an option-group to prevent truncation of text
// (search WT:TW archives for "Problem selecting warnings on an iPhone")
if (wrapInOptgroup && $.client.profile().platform === 'iphone') {
var wrapperOptgroup = new Morebits.quickForm.element({
type: 'optgroup',
label: '可用模板'
});
wrapperOptgroup = wrapperOptgroup.render();
container.appendChild(wrapperOptgroup);
container = wrapperOptgroup;
}
$.each(contents, function(itemKey, itemProperties) {
// Skip if the current template doesn't have a version for the current level
if (!!level && !itemProperties[val]) {
return;
}
var key = typeof itemKey === 'string' ? itemKey : itemProperties.value;
var template = key + level;
var elem = new Morebits.quickForm.element({
type: 'option',
label: '{{' + template + '}}: ' + (level ? itemProperties[val].label : itemProperties.label),
value: template
});
// Select item best corresponding to previous selection
if (!selected && old_subvalue && old_subvalue_re.test(template)) {
elem.data.selected = selected = true;
}
var elemRendered = container.appendChild(elem.render());
$(elemRendered).data('messageData', itemProperties);
});
};
switch (value) {
case 'singlenotice':
case 'singlewarn':
createEntries(Twinkle.warn.messages[value], sub_group, true);
break;
case 'singlecombined':
var unSortedSinglets = $.extend({}, Twinkle.warn.messages.singlenotice, Twinkle.warn.messages.singlewarn);
var sortedSingletMessages = {};
Object.keys(unSortedSinglets).sort().forEach(function(key) {
sortedSingletMessages[key] = unSortedSinglets[key];
});
createEntries(sortedSingletMessages, sub_group, true);
break;
case 'custom':
createEntries(Twinkle.getPref('customWarningList'), sub_group, true);
break;
case 'kitchensink':
['level1', 'level2', 'level3', 'level4', 'level4im'].forEach(function(lvl) {
$.each(Twinkle.warn.messages.levels, function(_, levelGroup) {
createEntries(levelGroup, sub_group, true, lvl);
});
});
createEntries(Twinkle.warn.messages.singlenotice, sub_group, true);
createEntries(Twinkle.warn.messages.singlewarn, sub_group, true);
createEntries(Twinkle.getPref('customWarningList'), sub_group, true);
break;
case 'level1':
case 'level2':
case 'level3':
case 'level4':
case 'level4im':
// Creates subgroup regardless of whether there is anything to place in it;
// leaves "Removal of deletion tags" empty for 4im
$.each(Twinkle.warn.messages.levels, function(groupLabel, groupContents) {
var optgroup = new Morebits.quickForm.element({
type: 'optgroup',
label: groupLabel
});
optgroup = optgroup.render();
sub_group.appendChild(optgroup);
// create the options
createEntries(groupContents, optgroup, false);
});
break;
case 'autolevel':
// Check user page to determine appropriate level
var autolevelProc = function() {
var wikitext = Twinkle.warn.talkpageObj.getPageText();
// history not needed for autolevel
var latest = Twinkle.warn.callbacks.dateProcessing(wikitext)[0];
// Pseudo-params with only what's needed to parse the level i.e. no messageData
var params = {
sub_group: old_subvalue,
article: e.target.root.article.value
};
var lvl = 'level' + Twinkle.warn.callbacks.autolevelParseWikitext(wikitext, params, latest)[1];
// Identical to level1, etc. above but explicitly provides the level
$.each(Twinkle.warn.messages.levels, function(groupLabel, groupContents) {
var optgroup = new Morebits.quickForm.element({
type: 'optgroup',
label: groupLabel
});
optgroup = optgroup.render();
sub_group.appendChild(optgroup);
// create the options
createEntries(groupContents, optgroup, false, lvl);
});
// Trigger subcategory change, add select menu, etc.
Twinkle.warn.callback.postCategoryCleanup(e);
};
if (Twinkle.warn.talkpageObj) {
autolevelProc();
} else {
if (Twinkle.warn.isFlow) {
var $noTalkPageNode = $('<strong/>', {
text: wgULS('结构式讨论(Flow)不支持自动选择警告层级,请手动选择层级。', '結構式討論(Flow)不支援自動選擇警告層級,請手動選擇層級。'),
id: 'twinkle-warn-autolevel-message',
css: {color: 'red' }
});
$noTalkPageNode.insertBefore($('#twinkle-warn-warning-messages'));
// If a preview was opened while in a different mode, close it
// Should nullify the need to catch the error in preview callback
e.target.root.previewer.closePreview();
} else {
var usertalk_page = new Morebits.wiki.page('User_talk:' + Morebits.wiki.flow.relevantUserName(), wgULS('加载上次警告', '載入上次警告'));
usertalk_page.setFollowRedirect(true, false);
usertalk_page.load(function(pageobj) {
Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj
autolevelProc();
}, function() {
// Catch and warn if the talkpage can't load,
// most likely because it's a cross-namespace redirect
// Supersedes the typical $autolevelMessage added in autolevelParseWikitext
var $noTalkPageNode = $('<strong/>', {
text: wgULS('无法加载用户讨论页,这可能是因为它是跨命名空间重定向,自动选择警告级别将不会运作。', '無法載入使用者討論頁,這可能是因為它是跨命名空間重新導向,自動選擇警告級別將不會運作。'),
id: 'twinkle-warn-autolevel-message',
css: {color: 'red' }
});
$noTalkPageNode.insertBefore($('#twinkle-warn-warning-messages'));
// If a preview was opened while in a different mode, close it
// Should nullify the need to catch the error in preview callback
e.target.root.previewer.closePreview();
});
}
}
break;
default:
alert(wgULS('twinklewarn中未知的警告组', 'twinklewarn中未知的警告組'));
break;
}
// Trigger subcategory change, add select menu, etc.
// Here because of the async load for autolevel
if (value !== 'autolevel') {
// reset any autolevel-specific messages while we're here
$('#twinkle-warn-autolevel-message').remove();
Twinkle.warn.callback.postCategoryCleanup(e);
}
};
Twinkle.warn.callback.postCategoryCleanup = function twinklewarnCallbackPostCategoryCleanup(e) {
// clear overridden label on article textbox
Morebits.quickForm.setElementTooltipVisibility(e.target.root.article, true);
Morebits.quickForm.resetElementLabel(e.target.root.article);
// Trigger custom label/change on main category change
Twinkle.warn.callback.change_subcategory(e);
// Use select2 to make the select menu searchable
if (!Twinkle.getPref('oldSelect')) {
$('select[name=sub_group]')
.select2({
width: '100%',
matcher: Morebits.select2.matchers.optgroupFull,
templateResult: Morebits.select2.highlightSearchMatches,
language: {
searching: Morebits.select2.queryInterceptor
}
})
.change(Twinkle.warn.callback.change_subcategory);
$('.select2-selection').keydown(Morebits.select2.autoStart).focus();
mw.util.addCSS(
// Increase height
'.select2-container .select2-dropdown .select2-results > .select2-results__options { max-height: 350px; }' +
// Reduce padding
'.select2-results .select2-results__option { padding-top: 1px; padding-bottom: 1px; }' +
'.select2-results .select2-results__group { padding-top: 1px; padding-bottom: 1px; } ' +
// Adjust font size
'.select2-container .select2-dropdown .select2-results { font-size: 13px; }' +
'.select2-container .selection .select2-selection__rendered { font-size: 13px; }'
);
}
};
Twinkle.warn.callback.change_subcategory = function twinklewarnCallbackChangeSubcategory(e) {
var main_group = e.target.form.main_group.value;
var value = e.target.form.sub_group.value;
// Tags that don't take a linked article, but something else (often a username).
// The value of each tag is the label next to the input field
var notLinkedArticle = {
'uw-bite': wgULS('被“咬到”的用户(不含User:) ', '被「咬到」的使用者(不含User:) '),
'uw-username': wgULS('用户名违反方针,因为… ', '使用者名稱違反方針,因為… '),
'uw-aiv': wgULS('可选输入被警告的用户名(不含User:) ', '可選輸入被警告的使用者名稱(不含User:) ')
};
if (['singlenotice', 'singlewarn', 'singlecombined', 'kitchensink'].indexOf(main_group) !== -1) {
if (notLinkedArticle[value]) {
if (Twinkle.warn.prev_article === null) {
Twinkle.warn.prev_article = e.target.form.article.value;
}
e.target.form.article.notArticle = true;
e.target.form.article.value = '';
// change form labels according to the warning selected
Morebits.quickForm.setElementTooltipVisibility(e.target.form.article, false);
Morebits.quickForm.overrideElementLabel(e.target.form.article, notLinkedArticle[value]);
} else if (e.target.form.article.notArticle) {
if (Twinkle.warn.prev_article !== null) {
e.target.form.article.value = Twinkle.warn.prev_article;
Twinkle.warn.prev_article = null;
}
e.target.form.article.notArticle = false;
Morebits.quickForm.setElementTooltipVisibility(e.target.form.article, true);
Morebits.quickForm.resetElementLabel(e.target.form.article);
}
}
// add big red notice, warning users about how to use {{uw-[coi-]username}} appropriately
$('#tw-warn-red-notice').remove();
var $redWarning;
if (value === 'uw-username') {
$redWarning = $(wgULS("<div style='color: red;' id='tw-warn-red-notice'>{{uw-username}}<b>不应</b>被用于<b>明显</b>违反用户名方针的用户。" +
'明显的违反方针应被报告给UAA。' +
'{{uw-username}}应只被用在边界情况下需要与用户讨论时。</div>',
"<div style='color: red;' id='tw-warn-red-notice'>{{uw-username}}<b>不應</b>被用於<b>明顯</b>違反用戶名方針的用戶。" +
'明顯的違反方針應被報告給UAA。' +
'{{uw-username}}應只被用在邊界情況下需要與用戶討論時。</div>'));
$redWarning.insertAfter(Morebits.quickForm.getElementLabelObject(e.target.form.reasonGroup));
}
};
Twinkle.warn.callbacks = {
getWarningWikitext: function(templateName, article, reason, isCustom, noSign) {
var text = '{{subst:' + templateName;
// add linked article for user warnings
if (article) {
text += '|1=' + article;
}
if (reason) {
// add extra message
if (templateName === 'uw-csd') {
text += '|3=' + reason;
} else {
text += '|2=' + reason;
}
}
text += '|subst=subst:}}';
if (!noSign) {
text += ' ~~~~';
}
return text;
},
showPreview: function(form, templatename) {
var input = Morebits.quickForm.getInputData(form);
// Provided on autolevel, not otherwise
templatename = templatename || input.sub_group;
var linkedarticle = input.article;
var templatetext;
templatetext = Twinkle.warn.callbacks.getWarningWikitext(templatename, linkedarticle,
input.reason, input.main_group === 'custom');
form.previewer.beginRender(templatetext, 'User_talk:' + Morebits.wiki.flow.relevantUserName() + (Twinkle.warn.isFlow ? '/Wikitext' : '')); // Force wikitext/correct username
},
// Just a pass-through unless the autolevel option was selected
preview: function(form) {
if (form.main_group.value === 'autolevel') {
// Always get a new, updated talkpage for autolevel processing
var usertalk_page = new Morebits.wiki.page('User_talk:' + Morebits.wiki.flow.relevantUserName(), wgULS('加载上次警告', '載入上次警告'));
usertalk_page.setFollowRedirect(true, false);
// Will fail silently if the talk page is a cross-ns redirect,
// removal of the preview box handled when loading the menu
usertalk_page.load(function(pageobj) {
Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj
var wikitext = pageobj.getPageText();
// history not needed for autolevel
var latest = Twinkle.warn.callbacks.dateProcessing(wikitext)[0];
var params = {
sub_group: form.sub_group.value,
article: form.article.value,
messageData: $(form.sub_group).find('option[value="' + $(form.sub_group).val() + '"]').data('messageData')
};
var template = Twinkle.warn.callbacks.autolevelParseWikitext(wikitext, params, latest)[0];
Twinkle.warn.callbacks.showPreview(form, template);
// If the templates have diverged, fake a change event
// to reload the menu with the updated pageobj
if (form.sub_group.value !== template) {
var evt = document.createEvent('Event');
evt.initEvent('change', true, true);
form.main_group.dispatchEvent(evt);
}
});
} else {
Twinkle.warn.callbacks.showPreview(form);
}
},
/**
* Used in the main and autolevel loops to determine when to warn
* about excessively recent, stale, or identical warnings.
* @param {string} wikitext The text of a user's talk page, from getPageText()
* @returns {Object[]} - Array of objects: latest contains most recent
* warning and date; history lists all prior warnings
*/
dateProcessing: function(wikitext) {
var history_re = /<!--\s?Template:([uU]w-.*?)\s?-->.*?(\d{4})年(\d{1,2})月(\d{1,2})日 \([日一二三四五六]\) (\d{1,2}):(\d{1,2}) \(UTC\)/g;
var history = {};
var latest = { date: new Morebits.date(0), type: '' };
var current;
while ((current = history_re.exec(wikitext)) !== null) {
var template = current[1];
var current_date = new Morebits.date(current[2] + '-' + current[3] + '-' + current[4] + ' ' + current[5] + ':' + current[6] + ' UTC');
if (!(template in history) || history[template].isBefore(current_date)) {
history[template] = current_date;
}
if (!latest.date.isAfter(current_date)) {
latest.date = current_date;
latest.type = template;
}
}
return [latest, history];
},
/**
* Main loop for deciding what the level should increment to. Most of
* this is really just error catching and updating the subsequent data.
* May produce up to two notices in a twinkle-warn-autolevel-messages div
*
* @param {string} wikitext The text of a user's talk page, from getPageText() (required)
* @param {Object} params Params object: sub_group is the template (required);
* article is the user-provided article (form.article) used to link ARV on recent level4 warnings;
* messageData is only necessary if getting the full template, as it's
* used to ensure a valid template of that level exists
* @param {Object} latest First element of the array returned from
* dateProcessing. Provided here rather than processed within to avoid
* repeated call to dateProcessing
* @param {(Date|Morebits.date)} date Date from which staleness is determined
* @param {Morebits.status} statelem Status element, only used for handling error in final execution
*
* @returns {Array} - Array that contains the full template and just the warning level
*/
autolevelParseWikitext: function(wikitext, params, latest, date, statelem) {
var level; // undefined rather than '' means the isNaN below will return true
if (/\d(?:im)?$/.test(latest.type)) { // level1-4im
level = parseInt(latest.type.replace(/.*(\d)(?:im)?$/, '$1'), 10);
} else if (latest.type) { // Non-numbered warning
// Try to leverage existing categorization of
// warnings, all but one are universally lowercased
var loweredType = /uw-multipleIPs/i.test(latest.type) ? 'uw-multipleIPs' : latest.type.toLowerCase();
// It would be nice to account for blocks, but in most
// cases the hidden message is terminal, not the sig
if (Twinkle.warn.messages.singlewarn[loweredType]) {
level = 3;
} else {
level = 1; // singlenotice or not found
}
}
var $autolevelMessage = $('<div/>', {id: 'twinkle-warn-autolevel-message'});
if (isNaN(level)) { // No prior warnings found, this is the first
level = 1;
} else if (level > 4 || level < 1) { // Shouldn't happen
var message = wgULS('无法解析上次的警告层级,请手动选择一个警告层级。', '無法解析上次的警告層級,請手動選擇一個警告層級。');
if (statelem) {
statelem.error(message);
} else {
alert(message);
}
return;
} else {
date = date || new Date();
var autoTimeout = new Morebits.date(latest.date.getTime()).add(parseInt(Twinkle.getPref('autolevelStaleDays'), 10), 'day');
if (autoTimeout.isAfter(date)) {
if (level === 4) {
level = 4;
// Basically indicates whether we're in the final Main evaluation or not,
// and thus whether we can continue or need to display the warning and link
if (!statelem) {
var $link = $('<a/>', {
href: '#',
text: wgULS('单击此处打开告状工具', '點擊此處打開告狀工具'),
css: { fontWeight: 'bold' },
click: function() {
Morebits.wiki.actionCompleted.redirect = null;
Twinkle.warn.dialog.close();
Twinkle.arv.callback(Morebits.wiki.flow.relevantUserName());
$('input[name=page]').val(params.article); // Target page
$('input[value=final]').prop('checked', true); // Vandalism after final
}
});
var statusNode = $('<div/>', {
text: Morebits.wiki.flow.relevantUserName() + wgULS('最后收到了一个层级4警告(', '最後收到了一個層級4警告(') + latest.type + wgULS('),所以将其报告给管理人员会比较好;', '),所以將其報告給管理人員會比較好;'),
css: {color: 'red' }
});
statusNode.append($link[0]);
$autolevelMessage.append(statusNode);
}
} else { // Automatically increase severity
level += 1;
}
} else { // Reset warning level if most-recent warning is too old
level = 1;
}
}
$autolevelMessage.prepend($('<div>' + wgULS('将发送', '將發送') + '<span style="font-weight: bold;">' + wgULS('层级', '層級') + level + '</span>' + '警告模板' + '。</div>'));
// Place after the stale and other-user-reverted (text-only) messages
$('#twinkle-warn-autolevel-message').remove(); // clean slate
$autolevelMessage.insertAfter($('#twinkle-warn-warning-messages'));
var template = params.sub_group.replace(/(.*)\d$/, '$1');
// Validate warning level, falling back to the uw-generic series.
// Only a few items are missing a level, and in all but a handful
// of cases, the uw-generic series is explicitly used elsewhere per WP:UTM.
if (params.messageData && !params.messageData['level' + level]) {
template = 'uw-generic';
}
template += level;
return [template, level];
},
main: function(pageobj) {
var text = pageobj.getPageText();
var statelem = pageobj.getStatusElement();
var params = pageobj.getCallbackParameters();
var messageData = params.messageData;
// JS somehow didn't get destructured assignment until ES6 so of course IE doesn't support it
var warningHistory = Twinkle.warn.callbacks.dateProcessing(text);
var latest = warningHistory[0];
var history = warningHistory[1];
var now = new Morebits.date(pageobj.getLoadTime());
Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj, just in case
if (params.main_group === 'autolevel') {
// [template, level]
var templateAndLevel = Twinkle.warn.callbacks.autolevelParseWikitext(text, params, latest, now, statelem);
// Only if there's a change from the prior display/load
if (params.sub_group !== templateAndLevel[0] && !confirm(wgULS('将发送给用户{{', '將發送給使用者{{') + templateAndLevel[0] + wgULS('}}模板,好吗?', '}}模板,好嗎?'))) {
statelem.error(wgULS('用户取消', '使用者取消'));
return;
}
// Update params now that we've selected a warning
params.sub_group = templateAndLevel[0];
messageData = params.messageData['level' + templateAndLevel[1]];
} else if (params.sub_group in history) {
if (new Morebits.date(history[params.sub_group]).add(1, 'day').isAfter(now)) {
if (!confirm(wgULS('近24小时内一个同样的 ', '近24小時內一個同樣的 ') + params.sub_group + wgULS(' 模板已被发出。\n是否继续?', ' 模板已被發出。\n是否繼續?'))) {
statelem.error(wgULS('用户取消', '使用者取消'));
return;
}
}
}
latest.date.add(1, 'minute'); // after long debate, one minute is max
if (latest.date.isAfter(now)) {
if (!confirm(wgULS('近1分钟内 ', '近1分鐘內 ') + latest.type + wgULS(' 模板已被发出。\n是否继续?', ' 模板已被發出。\n是否繼續?'))) {
statelem.error(wgULS('用户取消', '使用者取消'));
return;
}
}
// build the edit summary
// Function to handle generation of summary prefix for custom templates
var customProcess = function(template) {
template = template.split('|')[0];
var prefix;
switch (template.substr(-1)) {
case '1':
prefix = '提醒';
break;
case '2':
prefix = '注意';
break;
case '3':
prefix = '警告';
break;
case '4':
prefix = wgULS('最后警告', '最後警告');
break;
case 'm':
if (template.substr(-3) === '4im') {
prefix = '唯一警告';
break;
}
// falls through
default:
prefix = '提醒';
break;
}
return prefix + ':' + Morebits.string.toUpperCaseFirstChar(messageData.label);
};
var summary;
if (params.main_group === 'custom') {
summary = customProcess(params.sub_group);
} else {
// Normalize kitchensink to the 1-4im style
if (params.main_group === 'kitchensink' && !/^D+$/.test(params.sub_group)) {
var sub = params.sub_group.substr(-1);
if (sub === 'm') {
sub = params.sub_group.substr(-3);
}
// Don't overwrite uw-3rr, technically unnecessary
if (/\d/.test(sub)) {
params.main_group = 'level' + sub;
}
}
// singlet || level1-4im, no need to /^\D+$/.test(params.main_group)
summary = messageData.summary || (messageData[params.main_group] && messageData[params.main_group].summary);
// Not in Twinkle.warn.messages, assume custom template
if (!summary) {
summary = customProcess(params.sub_group);
}
if (messageData.suppressArticleInSummary !== true && params.article) {
if (params.sub_group === 'uw-aiv') { // these templates require a username
summary += '(' + wgULS('对于', '對於') + '[[User:' + params.article + ']])';
} else if (params.sub_group === 'uw-bite') { // this template requires a username
summary += ',' + wgULS('于', '於') + '[[User talk:' + params.article + ']]';
} else {
summary += wgULS(',于[[', ',於[[') + params.article + ']]';
}
}
}
pageobj.setEditSummary(summary);
pageobj.setChangeTags(Twinkle.changeTags);
pageobj.setWatchlist(Twinkle.getPref('watchWarnings'));
// Get actual warning text
var warningText = Twinkle.warn.callbacks.getWarningWikitext(params.sub_group, params.article,
params.reason, params.main_group === 'custom');
if (Twinkle.getPref('showSharedIPNotice') && mw.util.isIPAddress(mw.config.get('wgTitle'))) {
Morebits.status.info(wgULS('信息', '資訊'), wgULS('加入共享IP说明', '加入共享IP說明'));
warningText += '\n{{subst:SharedIPAdvice}}';
}
var sectionExists = false, sectionNumber = 0;
// Only check sections if there are sections or there's a chance we won't create our own
if (!messageData.heading && text.length) {
// Get all sections
var sections = text.match(/^(==*).+\1/gm);
if (sections && sections.length !== 0) {
// Find the index of the section header in question
var dateHeaderRegex = now.monthHeaderRegex();
sectionNumber = 0;
// Find this month's section among L2 sections, preferring the bottom-most
sectionExists = sections.reverse().some(function(sec, idx) {
return /^(==)[^=].+\1/m.test(sec) && dateHeaderRegex.test(sec) && typeof (sectionNumber = sections.length - 1 - idx) === 'number';
});
}
}
if (sectionExists) { // append to existing section
pageobj.setPageSection(sectionNumber + 1);
pageobj.setAppendText('\n\n' + warningText);
pageobj.append();
} else {
if (messageData.heading) { // create new section
pageobj.setNewSectionTitle(messageData.heading);
} else {
Morebits.status.info(wgULS('信息', '資訊'), wgULS('未找到当月的二级标题,将创建新的', '未找到當月的二級標題,將建立新的'));
pageobj.setNewSectionTitle(now.monthHeader(0));
}
pageobj.setNewSectionText(warningText);
pageobj.newSection();
}
},
main_flow: function (flowobj) {
var params = flowobj.getCallbackParameters();
var messageData = params.messageData;
// build the edit summary
// Function to handle generation of summary prefix for custom templates
var customProcess = function(template) {
template = template.split('|')[0];
var prefix;
switch (template.substr(-1)) {
case '1':
prefix = '提醒';
break;
case '2':
prefix = '注意';
break;
case '3':
prefix = '警告';
break;
case '4':
prefix = wgULS('最后警告', '最後警告');
break;
case 'm':
if (template.substr(-3) === '4im') {
prefix = '唯一警告';
break;
}
// falls through
default:
prefix = '提醒';
break;
}
return prefix + ':' + Morebits.string.toUpperCaseFirstChar(messageData.label);
};
var topic;
if (messageData.heading) {
topic = messageData.heading;
} else {
// Normalize kitchensink to the 1-4im style
if (params.main_group === 'kitchensink' && !/^D+$/.test(params.sub_group)) {
var sub = params.sub_group.substr(-1);
if (sub === 'm') {
sub = params.sub_group.substr(-3);
}
// Don't overwrite uw-3rr, technically unnecessary
if (/\d/.test(sub)) {
params.main_group = 'level' + sub;
}
}
// singlet || level1-4im, no need to /^\D+$/.test(params.main_group)
topic = messageData.summary || (messageData[params.main_group] && messageData[params.main_group].summary);
// Not in Twinkle.warn.messages, assume custom template
if (!topic) {
topic = customProcess(params.sub_group);
}
}
var content = Twinkle.warn.callbacks.getWarningWikitext(params.sub_group, params.article,
params.reason, params.main_group === 'custom', true);
flowobj.setTopic(topic);
flowobj.setContent(content);
flowobj.newTopic();
}
};
Twinkle.warn.callback.evaluate = function twinklewarnCallbackEvaluate(e) {
var userTalkPage = 'User_talk:' + Morebits.wiki.flow.relevantUserName();
// reason, main_group, sub_group, article
var params = Morebits.quickForm.getInputData(e.target);
// Check that a reason was filled in if uw-username was selected
if (params.sub_group === 'uw-username' && !params.article) {
alert(wgULS('必须给{{uw-username}}提供理由。', '必須給{{uw-username}}提供理由。'));
return;
}
if (params.article) {
if (/https?:\/\//.test(params.article)) {
alert(wgULS('“页面链接”不能使用网址。', '「頁面連結」不能使用網址。'));
return;
}
try {
var article = new mw.Title(params.article);
params.article = article.getPrefixedText();
if (article.getFragment()) {
params.article += '#' + article.getFragment();
}
} catch (error) {
alert(wgULS('“页面链接”不合法,仅能输入一个页面名称,勿使用网址、[[ ]],可使用Special:Diff。', '「頁面連結」不合法,僅能輸入一個頁面名稱,勿使用網址、[[ ]],可使用Special:Diff。'));
return;
}
}
// The autolevel option will already know by now if a user talk page
// is a cross-namespace redirect (via !!Twinkle.warn.talkpageObj), so
// technically we could alert an error here, but the user will have
// already ignored the bold red error above. Moreover, they probably
// *don't* want to actually issue a warning, so the error handling
// after the form is submitted is probably preferable
// Find the selected <option> element so we can fetch the data structure
var $selectedEl = $(e.target.sub_group).find('option[value="' + $(e.target.sub_group).val() + '"]');
params.messageData = $selectedEl.data('messageData');
if (typeof params.messageData === 'undefined') {
alert(wgULS('请选择警告模板。', '請選擇警告模板。'));
return;
}
Morebits.simpleWindow.setButtonsEnabled(false);
Morebits.status.init(e.target);
Morebits.wiki.actionCompleted.redirect = userTalkPage;
Morebits.wiki.actionCompleted.notice = wgULS('警告完成,将在几秒后刷新', '警告完成,將在幾秒後重新整理');
if (Twinkle.warn.isFlow) {
var flow_page = new Morebits.wiki.flow(userTalkPage, wgULS('用户Flow讨论页留言', '使用者Flow討論頁留言'));
flow_page.setCallbackParameters(params);
Twinkle.warn.callbacks.main_flow(flow_page);
} else {
var wikipedia_page = new Morebits.wiki.page(userTalkPage, wgULS('用户讨论页修改', '使用者討論頁修改'));
wikipedia_page.setCallbackParameters(params);
wikipedia_page.setFollowRedirect(true, false);
wikipedia_page.load(Twinkle.warn.callbacks.main);
}
};
Twinkle.addInitCallback(Twinkle.warn, 'warn');
})(jQuery);
// </nowiki>
ddxn7sqia04iashkq760wsgqsez96zq
User:JohanahoJ/sandbox.css
2
112884
519238
519191
2022-07-29T14:18:22Z
JohanahoJ
37147
css
text/css
.script_mlangbabel_separator {
filter: opacity(40%);
margin: 7px 40px 7px 0;
}
.script_mlangbabel_error {
color: #d33;
margin-left: 1em;
}
.script_mlangbabel_info {
text-decoration: underline !important;
}
6i5k7kqty87ej49p400iahsaw17bf7a
519242
519238
2022-07-29T14:54:20Z
JohanahoJ
37147
css
text/css
.script_mlangbabel_error {
color: #d33;
margin-left: 1em;
}
.script_mlangbabel_info {
text-decoration: underline !important;
}
4y0iiv2f719sot8d1g89x25za73d0in
519243
519242
2022-07-29T14:59:27Z
JohanahoJ
37147
css
text/css
.script_mlangbabel_langul {
margin-top: 1em;
}
.script_mlangbabel_error {
color: #d33;
margin-left: 1em;
}
.script_mlangbabel_info {
text-decoration: underline !important;
}
agcc2r0d7odx666dv1pojvhdzvwseh4
519245
519243
2022-07-29T15:06:31Z
JohanahoJ
37147
css
text/css
.script_mlangbabel_langul {
margin-top: .5em;
}
.script_mlangbabel_error {
color: #d33;
/* margin-left: 1em; */
}
.script_mlangbabel_info {
text-decoration: underline !important;
}
e6f62bpurloihu8s5lms4bwat73g9p3
519246
519245
2022-07-29T15:11:04Z
JohanahoJ
37147
css
text/css
.script_mlangbabel_langul {
margin-top: .5em;
}
.script_mlangbabel_error {
color: #d33;
}
.script_mlangbabel_info {
text-decoration: underline !important;
}
5stdmblb60qd6w5quauxvkpqir1t8dh
519267
519246
2022-07-29T18:45:10Z
JohanahoJ
37147
Blanked the page
css
text/css
phoiac9h4m842xq45sp7s6u21eteeq1
User:JohanahoJ/sandbox.js
2
112889
519240
519237
2022-07-29T14:45:05Z
JohanahoJ
37147
javascript
text/javascript
// Nödvändig modul: 'mediawiki.user'
function main() {
'use strict';
if ( mw.config.get( 'skin' ) !== 'minerva' ) return;
window.addEventListener('hashchange', function() {
if ( location.hash.indexOf( '#/languages' ) > -1 ) {
location.reload();
}
});
setTimeout( function() {
var babelLang = mw.config.get( 'wgULSBabelLanguages' );
if ( !babelLang ) return;
var anyCurrLangList = document.getElementsByClassName( 'all-languages' )[0] ??
document.getElementsByClassName( 'suggested-languages' )[0];
if ( !anyCurrLangList ) return;
var langUl = document.createElement( 'ul' );
var langListParent = anyCurrLangList.parentNode;
if ( !langListParent ) return;
langListParent.prepend( langUl );
langUl.classList.add( 'site-link-list' );
if ( !babelLang.length ) {
var errorText, infoUrl;
if ( mw.config.get( 'wgUserLanguage' ) === 'sv' ) {
errorText = 'Hittar inte Babel-inställningar.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language/sv';
} else {
errorText = 'Can\'t find Babel settings.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language';
}
var errorDiv = document.createElement( 'div' );
errorDiv.textContent = errorText;
errorDiv.classList.add( 'script_mlangbabel_error' );
var babelInfoLink = document.createElement( 'a' );
errorDiv.appendChild( babelInfoLink );
babelInfoLink.textContent = 'Info';
babelInfoLink.classList.add( 'script_mlangbabel_info' );
babelInfoLink.setAttribute( 'href', infoUrl );
langUl.prepend( errorDiv );
return;
}
babelLang.reverse();
babelLang.forEach( function ( prLang ) {
var langA = langListParent.getElementsByClassName( prLang )[0];
if ( !langA ) return;
var langLi = langA.parentElement.closest('li');
if ( !langLi ) {
langLi = langA
}
langLi.classList.add( 'script_mlangbabel_items' );
langUl.prepend( langLi );
});
}, 200);
}
if ( document.readyState === 'loading' ) {
document.addEventListener( 'DOMContentLoaded', main );
} else {
main();
}
83fid32287piobg5yvnyc4mt6up7soz
519241
519240
2022-07-29T14:52:46Z
JohanahoJ
37147
javascript
text/javascript
// Nödvändig modul: 'mediawiki.user'
function main() {
'use strict';
if ( mw.config.get( 'skin' ) !== 'minerva' ) return;
window.addEventListener('hashchange', function() {
if ( location.hash.indexOf( '#/languages' ) > -1 ) {
location.reload();
}
});
setTimeout( function() {
var langA, langLi;
var babelLang = mw.config.get( 'wgULSBabelLanguages' );
if ( !babelLang ) return;
var anyCurrLangList = document.getElementsByClassName( 'all-languages' )[0] ??
document.getElementsByClassName( 'suggested-languages' )[0];
if ( !anyCurrLangList ) return;
var langUl = document.createElement( 'ul' );
var langListParent = anyCurrLangList.parentNode;
if ( !langListParent ) return;
langListParent.prepend( langUl );
langUl.classList.add( 'site-link-list' );
if ( !babelLang.length ) {
var errorText, infoUrl;
if ( mw.config.get( 'wgUserLanguage' ) === 'sv' ) {
errorText = 'Hittar inte Babel-inställningar.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language/sv';
} else {
errorText = 'Can\'t find Babel settings.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language';
}
var errorDiv = document.createElement( 'div' );
errorDiv.textContent = errorText;
errorDiv.classList.add( 'script_mlangbabel_error' );
var babelInfoLink = document.createElement( 'a' );
errorDiv.appendChild( babelInfoLink );
babelInfoLink.textContent = 'Info';
babelInfoLink.classList.add( 'script_mlangbabel_info' );
babelInfoLink.setAttribute( 'href', infoUrl );
langUl.prepend( errorDiv );
return;
}
babelLang.reverse();
babelLang.forEach( function ( prLang ) {
langA = langListParent.getElementsByClassName( prLang )[0];
if ( !langA ) return;
langLi = langA.parentElement.closest('li');
if ( !langLi ) langLi = langA;
langUl.prepend( langLi );
});
}, 200);
}
if ( document.readyState === 'loading' ) {
document.addEventListener( 'DOMContentLoaded', main );
} else {
main();
}
4oiop23j0g2dzd7ncrxq6tg8eanrjw4
519244
519241
2022-07-29T15:05:22Z
JohanahoJ
37147
javascript
text/javascript
// Nödvändig modul: 'mediawiki.user'
function main() {
'use strict';
if ( mw.config.get( 'skin' ) !== 'minerva' ) return;
window.addEventListener('hashchange', function() {
if ( location.hash.indexOf( '#/languages' ) > -1 ) {
location.reload();
}
});
setTimeout( function() {
var langA, langLi;
var babelLang = mw.config.get( 'wgULSBabelLanguages' );
if ( !babelLang ) return;
var anyCurrLangList = document.getElementsByClassName( 'all-languages' )[0] ??
document.getElementsByClassName( 'suggested-languages' )[0];
if ( !anyCurrLangList ) return;
var langUl = document.createElement( 'ul' );
var langListParent = anyCurrLangList.parentNode;
if ( !langListParent ) return;
langListParent.prepend( langUl );
langUl.classList.add( 'site-link-list', 'script_mlangbabel_langul' );
if ( !babelLang.length ) {
var errorText, infoUrl;
if ( mw.config.get( 'wgUserLanguage' ) === 'sv' ) {
errorText = 'Hittar inte Babel-inställningar.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language/sv';
} else {
errorText = 'Can\'t find Babel settings.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language';
}
var errorDiv = document.createElement( 'div' );
errorDiv.textContent = errorText;
errorDiv.classList.add( 'list-header', 'script_mlangbabel_error' );
var babelInfoLink = document.createElement( 'a' );
errorDiv.appendChild( babelInfoLink );
babelInfoLink.textContent = 'Info';
babelInfoLink.classList.add( 'script_mlangbabel_info' );
babelInfoLink.setAttribute( 'href', infoUrl );
langUl.prepend( errorDiv );
return;
}
babelLang.reverse();
babelLang.forEach( function ( prLang ) {
langA = langListParent.getElementsByClassName( prLang )[0];
if ( !langA ) return;
langLi = langA.parentElement.closest('li');
if ( !langLi ) langLi = langA;
langUl.prepend( langLi );
});
}, 200);
}
if ( document.readyState === 'loading' ) {
document.addEventListener( 'DOMContentLoaded', main );
} else {
main();
}
44p2299vmi0sexdmtzo20qm94o1xy81
519247
519244
2022-07-29T15:20:06Z
JohanahoJ
37147
javascript
text/javascript
// Nödvändig modul: 'mediawiki.user'
function main() {
'use strict';
if ( mw.config.get( 'skin' ) !== 'minerva' ) return;
window.addEventListener('hashchange', function() {
if ( location.hash.indexOf( '#/languages' ) > -1 ) {
location.reload();
}
});
setTimeout( function() {
var langA, langLi;
var babelLang = mw.config.get( 'wgULSBabelLanguages' );
if ( !babelLang ) return;
var anyCurrLangList = document.getElementsByClassName( 'all-languages' )[0] ??
document.getElementsByClassName( 'suggested-languages' )[0];
if ( !anyCurrLangList ) return;
var langUl = document.createElement( 'ul' );
var langListParent = anyCurrLangList.parentNode;
if ( !langListParent ) return;
langListParent.prepend( langUl );
langUl.setAttribute( 'id', 'script_mlangbabel_langul' );
langUl.classList.add( 'site-link-list', 'script_mlangbabel_langul' );
if ( !babelLang.length ) {
var errorText, infoUrl;
if ( mw.config.get( 'wgUserLanguage' ) === 'sv' ) {
errorText = 'Hittar inte Babel-inställningar.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language/sv';
} else {
errorText = 'Can\'t find Babel settings.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language';
}
var errorDiv = document.createElement( 'div' );
errorDiv.textContent = errorText;
errorDiv.classList.add( 'list-header', 'script_mlangbabel_error' );
var babelInfoLink = document.createElement( 'a' );
errorDiv.appendChild( babelInfoLink );
babelInfoLink.textContent = 'Info';
babelInfoLink.classList.add( 'script_mlangbabel_info' );
babelInfoLink.setAttribute( 'href', infoUrl );
langUl.prepend( errorDiv );
return;
}
babelLang.reverse();
babelLang.forEach( function ( prLang ) {
langA = langListParent.getElementsByClassName( prLang )[0];
if ( !langA ) return;
langLi = langA.parentElement.closest('li');
if ( !langLi ) langLi = langA;
langUl.prepend( langLi );
});
}, 200);
}
if ( document.readyState === 'loading' ) {
document.addEventListener( 'DOMContentLoaded', main );
} else {
main();
}
0nf6jet0lorw0137roc5s0ih5px0wmm
519248
519247
2022-07-29T15:36:46Z
JohanahoJ
37147
javascript
text/javascript
/* För sidornas språklänkar i mobilvyn (Minerva).
Ett urval språklänkar placeras överst i listan. Urvalet definieras av wgULSBabelLanguages (Extension:Babel), vilket kräver att "{{#Babel:...}}" finns på den egna användarhuvudsidan, antingen på det aktuella projektet eller på meta, vilket täcker även andra projekt.
Nödvändig modul: 'mediawiki.user' (för ev. felmeddelande och dess länk).
*/
function main() {
'use strict';
if ( mw.config.get( 'skin' ) !== 'minerva' ) return;
window.addEventListener('hashchange', function() {
if ( location.hash.indexOf( '#/languages' ) > -1 ) {
location.reload();
}
});
setTimeout( function() {
var langA, langLi;
var babelLang = mw.config.get( 'wgULSBabelLanguages' );
if ( !babelLang ) return;
var anyCurrLangList = document.getElementsByClassName( 'all-languages' )[0] ??
document.getElementsByClassName( 'suggested-languages' )[0];
if ( !anyCurrLangList ) return;
var langUl = document.createElement( 'ul' );
var langListParent = anyCurrLangList.parentNode;
if ( !langListParent ) return;
langListParent.prepend( langUl );
langUl.setAttribute( 'id', 'script_mlangbabel_langul' );
langUl.classList.add( 'site-link-list', 'script_mlangbabel_langul' );
if ( !babelLang.length ) {
var errorText, infoUrl;
if ( mw.config.get( 'wgUserLanguage' ) === 'sv' ) {
errorText = 'Hittar inte Babel-inställningar.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language/sv';
} else {
errorText = 'Can\'t find Babel settings.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language';
}
var errorDiv = document.createElement( 'div' );
errorDiv.textContent = errorText;
errorDiv.classList.add( 'list-header', 'script_mlangbabel_error' );
var babelInfoLink = document.createElement( 'a' );
errorDiv.appendChild( babelInfoLink );
babelInfoLink.textContent = 'Info';
babelInfoLink.classList.add( 'script_mlangbabel_info' );
babelInfoLink.setAttribute( 'href', infoUrl );
langUl.prepend( errorDiv );
return;
}
babelLang.reverse();
babelLang.forEach( function ( prLang ) {
langA = langListParent.getElementsByClassName( prLang )[0];
if ( !langA ) return;
langLi = langA.parentElement.closest('li');
if ( !langLi ) langLi = langA;
langUl.prepend( langLi );
});
}, 200);
}
if ( document.readyState === 'loading' ) {
document.addEventListener( 'DOMContentLoaded', main );
} else {
main();
}
p4vkpkh8bd2qte96g79eut7w9g9w8j4
519255
519248
2022-07-29T16:38:42Z
JohanahoJ
37147
javascript
text/javascript
/* För sidornas språklänkar i mobilvyn (Minerva).
Ett urval språklänkar placeras överst i listan. Urvalet definieras av wgULSBabelLanguages (Extension:Babel), vilket kräver att "{{#Babel:...}}" finns på den egna användarhuvudsidan, antingen på det aktuella projektet eller på meta, vilket täcker även andra projekt.
Nödvändig modul: 'mediawiki.user' (för ev. felmeddelande och dess länk).
*/
function main() {
'use strict';
if ( mw.config.get( 'skin' ) !== 'minerva' ) return;
window.addEventListener('hashchange', function() {
if ( location.hash.indexOf( '#/languages' ) > -1 ) {
location.reload();
}
});
setTimeout( function() {
var langA, langLi, anyCurrLangList;
var babelLang = mw.config.get( 'wgULSBabelLanguages' );
if ( !babelLang ) return;
anyCurrLangList = document.getElementsByClassName( 'all-languages' )[0];
if ( !anyCurrLangList ) {
anyCurrLangList = document.getElementsByClassName( 'suggested-languages' )[0];
}
if ( !anyCurrLangList ) return;
var langUl = document.createElement( 'ul' );
var langListParent = anyCurrLangList.parentNode;
if ( !langListParent ) return;
langListParent.prepend( langUl );
langUl.setAttribute( 'id', 'script_mlangbabel_langul' );
langUl.classList.add( 'site-link-list', 'script_mlangbabel_langul' );
if ( !babelLang.length ) {
var errorText, infoUrl;
if ( mw.config.get( 'wgUserLanguage' ) === 'sv' ) {
errorText = 'Hittar inte Babel-inställningar.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language/sv';
} else {
errorText = 'Can\'t find Babel settings.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language';
}
var errorDiv = document.createElement( 'div' );
errorDiv.textContent = errorText;
errorDiv.classList.add( 'list-header', 'script_mlangbabel_error' );
var babelInfoLink = document.createElement( 'a' );
errorDiv.appendChild( babelInfoLink );
babelInfoLink.textContent = 'Info';
babelInfoLink.classList.add( 'script_mlangbabel_info' );
babelInfoLink.setAttribute( 'href', infoUrl );
langUl.prepend( errorDiv );
return;
}
babelLang.reverse();
babelLang.forEach( function ( prLang ) {
langA = langListParent.getElementsByClassName( prLang )[0];
if ( !langA ) return;
langLi = langA.parentElement.closest('li');
if ( !langLi ) langLi = langA;
langUl.prepend( langLi );
});
}, 200);
}
if ( document.readyState === 'loading' ) {
document.addEventListener( 'DOMContentLoaded', main );
} else {
main();
}
p6rjb9maw6bhfeas2hb05w98jajoryf
519256
519255
2022-07-29T16:40:44Z
JohanahoJ
37147
javascript
text/javascript
/* För sidornas språklänkar i mobilvyn (Minerva).
Ett urval språklänkar placeras överst i listan. Urvalet definieras av wgULSBabelLanguages (Extension:Babel), vilket kräver att "{{#Babel:...}}" finns på den egna användarhuvudsidan, antingen på det aktuella projektet eller på meta, vilket täcker även andra projekt.
Nödvändig modul: 'mediawiki.user' (för ev. felmeddelande och dess länk).
*/
function main() {
'use strict';
if ( mw.config.get( 'skin' ) !== 'minerva' ) return;
window.addEventListener('hashchange', function() {
if ( location.hash.indexOf( '#/languages' ) > -1 ) {
location.reload();
}
});
setTimeout( function() {
var langA, langLi, anyCurrLangList;
var babelLang = mw.config.get( 'wgULSBabelLanguages' );
if ( !babelLang ) return;
anyCurrLangList = document.getElementsByClassName( 'all-languages' )[0];
if ( !anyCurrLangList ) {
anyCurrLangList = document.getElementsByClassName( 'suggested-languages' )[0];
}
if ( !anyCurrLangList ) return;
var langUl = document.createElement( 'ul' );
var langListParent = anyCurrLangList.parentNode;
if ( !langListParent ) return;
langListParent.prepend( langUl );
langUl.setAttribute( 'id', 'script_mlangbabel_langul' );
langUl.classList.add( 'site-link-list', 'script_mlangbabel_langul' );
if ( !babelLang.length ) {
var errorText, infoUrl;
if ( mw.config.get( 'wgUserLanguage' ) === 'sv' ) {
errorText = 'Hittar inte Babel-inställningar.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language/sv';
} else {
errorText = 'Can\'t find Babel settings.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language';
}
var errorDiv = document.createElement( 'div' );
errorDiv.textContent = errorText;
errorDiv.classList.add( 'list-header', 'script_mlangbabel_error' );
var babelInfoLink = document.createElement( 'a' );
errorDiv.appendChild( babelInfoLink );
babelInfoLink.textContent = 'Info';
babelInfoLink.classList.add( 'script_mlangbabel_info' );
babelInfoLink.setAttribute( 'href', infoUrl );
langUl.prepend( errorDiv );
return;
}
babelLang.reverse();
babelLang.forEach( function ( prLang ) {
langA = langListParent.getElementsByClassName( prLang )[0];
if ( !langA ) return;
langLi = langA.parentElement.closest('li');
if ( !langLi ) langLi = langA;
langUl.prepend( langLi );
});
}, 200);
}
if ( document.readyState === 'loading' ) {
document.addEventListener( 'DOMContentLoaded', main );
} else {
main();
}
84xcf7lndtwbm9dl3wv707x6csknnsw
519257
519256
2022-07-29T16:42:00Z
JohanahoJ
37147
javascript
text/javascript
/* För sidornas språklänkar i mobilvyn (Minerva).
Ett urval språklänkar placeras överst i listan. Urvalet definieras av wgULSBabelLanguages (Extension:Babel), vilket kräver att "{{#Babel:...}}" finns på den egna användarhuvudsidan, antingen på det aktuella projektet eller på meta, vilket täcker även andra projekt.
Nödvändig modul: 'mediawiki.user' (för ev. felmeddelande och dess länk).
*/
function main() {
'use strict';
if ( mw.config.get( 'skin' ) !== 'minerva' ) return;
window.addEventListener('hashchange', function() {
if ( location.hash.indexOf( '#/languages' ) > -1 ) {
location.reload();
}
});
setTimeout( function() {
var langA, langLi, anyCurrLangList;
var babelLang = mw.config.get( 'wgULSBabelLanguages' );
if ( !babelLang ) return;
anyCurrLangList = document.getElementsByClassName( 'all-languages' )[0];
if ( !anyCurrLangList ) {
anyCurrLangList = document
.getElementsByClassName( 'suggested-languages' )[0];
}
if ( !anyCurrLangList ) return;
var langUl = document.createElement( 'ul' );
var langListParent = anyCurrLangList.parentNode;
if ( !langListParent ) return;
langListParent.prepend( langUl );
langUl.setAttribute( 'id', 'script_mlangbabel_langul' );
langUl.classList.add( 'site-link-list', 'script_mlangbabel_langul' );
if ( !babelLang.length ) {
var errorText, infoUrl;
if ( mw.config.get( 'wgUserLanguage' ) === 'sv' ) {
errorText = 'Hittar inte Babel-inställningar.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language/sv';
} else {
errorText = 'Can\'t find Babel settings.\xa0';
infoUrl = 'https://meta.wikimedia.org/wiki/User_language';
}
var errorDiv = document.createElement( 'div' );
errorDiv.textContent = errorText;
errorDiv.classList.add( 'list-header', 'script_mlangbabel_error' );
var babelInfoLink = document.createElement( 'a' );
errorDiv.appendChild( babelInfoLink );
babelInfoLink.textContent = 'Info';
babelInfoLink.classList.add( 'script_mlangbabel_info' );
babelInfoLink.setAttribute( 'href', infoUrl );
langUl.prepend( errorDiv );
return;
}
babelLang.reverse();
babelLang.forEach( function ( prLang ) {
langA = langListParent.getElementsByClassName( prLang )[0];
if ( !langA ) return;
langLi = langA.parentElement.closest('li');
if ( !langLi ) langLi = langA;
langUl.prepend( langLi );
});
}, 200);
}
if ( document.readyState === 'loading' ) {
document.addEventListener( 'DOMContentLoaded', main );
} else {
main();
}
sj83v1dh4ri3hxk78uq1vqo23rd28hy
519266
519257
2022-07-29T18:44:16Z
JohanahoJ
37147
Replaced content with "function main() { 'use strict'; } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); }"
javascript
text/javascript
function main() {
'use strict';
}
if ( document.readyState === 'loading' ) {
document.addEventListener( 'DOMContentLoaded', main );
} else {
main();
}
q0qcluf46dcal489h0fxu7iyy70lcqt
User:Sunpriat/sandbox
2
121235
519282
518425
2022-07-30T09:58:34Z
Sunpriat
6604
wikitext
text/x-wiki
text [[PageImages]] text
"{{{1|}}️}"
3uexcgb0lg33ixh4045az4u1cgge0jv
User:Nardog/sandbox4.js
2
121661
519281
514890
2022-07-30T09:28:44Z
Nardog
40946
javascript
text/javascript
// jshint maxerr:999,strict:implied,shadow:outer,undef:true,unused:true
/* globals $,mw,OO,ve */
(function ipaInputCore() {
if (window.ipaInputDialog) {
window.ipaInputDialog.open();
return;
}
mw.loader.addStyleTag('.ipainput-config{padding:0 1em 1em} .ipainput-input{position:sticky;top:0;left:0;opacity:0.8;font-size:200%;z-index:999} .ipainput-input > input{text-align:center} .ipainput .ipainput-input.oo-ui-indicatorElement > input{padding-right:56px} .ipainput .ipainput-input > .oo-ui-indicator-clear, .ipainput-symbol{cursor:pointer} .ipainput-undo, .ipainput-diaonly{font-size:50%;position:absolute;right:0;margin:0} .ipainput-diaonly{top:150%} .ipainput-status{text-align:center;font-size:120%;padding:1em 0 0.5em} .ipainput-status > a{font-weight:bold} .ipainput .mw-parser-output{margin:auto;width:max-content;max-width:100%;padding:0 0.5em;overflow:auto} .ipainput-symbol:hover{background-color:#fff} .ipainput-symbol:active{background-color:#c8ccd1} .ipainput-symbol:focus{outline:solid 2px #36c} .ipainput-symbol-disabled, .ipainput-symbol-disabled:hover, .ipainput-symbol-disabled:active, .ipainput-symbol-disabled:focus{cursor:auto;background-color:#c8ccd1 !important;outline:0} .ipainput-symbol-disabled, .ipainput-symbol-disabled a{color:#fff}');
let keyToTemplates = {
'(Full IPA chart)': ['IPA-all', 'IPA'],
'English': ['IPAc-en'],
'Adyghe': ['IPA-ady'],
'Afrikaans': ['IPA-af'],
'Albanian': ['IPA-sq'],
'Alemannic German': ['IPA-gsw', 'IPA-gct', 'IPA-swg', 'IPA-wae'],
'Amharic': ['IPA-am'],
'Arabic': ['IPA-ar'],
'Armenian': ['IPA-hy'],
'Assamese': ['IPA-as'],
'Astur-Leonese': ['IPA-ast', 'IPA-ext', 'IPA-le', 'IPA-mwl'],
'Australian languages': ['IPA-aus'],
'Azerbaijani': ['IPA-az'],
'Basque': ['IPA-eu'],
'Belarusian': ['IPA-be'],
'Bengali': ['IPA-bn'],
'Berber': ['IPA-ber'],
'Breton': ['IPA-br'],
'Bulgarian': ['IPA-bg'],
'Burmese': ['IPA-my'],
'Cantonese': ['IPA-yue'],
'Catalan': ['IPA-ca', 'IPA-va'],
'Colognian': ['IPA-ksh'],
'Corsican': ['IPA-co'],
'Czech': ['IPA-cs'],
'Danish': ['IPA-da'],
'Dutch': ['IPA-nl'],
'Egyptian Arabic': ['IPA-arz'],
'Emilian-Romagnol': ['IPA-egl', 'IPA-rgn'],
'Esperanto': ['IPA-eo'],
'Estonian': ['IPA-et'],
'Fijian': ['IPA-fj'],
'Finnish': ['IPA-fi'],
'Franco-Provençal': ['IPA-frp'],
'French': ['IPA-fr'],
'Galician': ['IPA-gl'],
'Georgian': ['IPA-ka'],
'Greek': ['IPA-el', 'IPA-grc'],
'Greenlandic': ['IPA-kl'],
'Gujarati': ['IPA-gu'],
'Haitian Creole': ['IPA-ht'],
'Hawaiian': ['IPA-haw'],
'Hebrew': ['IPA-he'],
'Hejazi Arabic': ['IPA-acw'],
'Hindi and Urdu': ['IPA-hns', 'IPA-hi', 'IPA-ur'],
'Hmong': ['IPA-hmn'],
'Hungarian': ['IPA-hu'],
'Icelandic': ['IPA-is'],
'Igbo': ['IPA-ig'],
'Insular Catalan': ['IPA-cadia'],
'Inuktitut': ['IPA-iu'],
'Inupiaq': ['IPA-ik'],
'Irish': ['IPA-ga'],
'Italian': ['IPA-it'],
'Italian dialects': ['IPA-itdia'],
'Japanese': ['IPA-ja'],
'Kazakh': ['IPA-kk'],
'Khmer': ['IPA-km'],
'Korean': ['IPA-ko'],
'Kurdish': ['IPA-ku', 'IPA-kmr', 'IPA-ckb', 'IPA-sdh'],
'Kyrgyz': ['IPA-ky'],
'Lakota': ['IPA-lkt'],
'Lao': ['IPA-lo'],
'Latin': ['IPA-la'],
'Latvian': ['IPA-lv'],
'Lebanese Arabic': ['IPA-apc'],
'Ligurian': ['IPA-lij'],
'Lithuanian': ['IPA-lt'],
'Lombard': ['IPA-lmo'],
'Luxembourgish': ['IPA-lb'],
'Macedonian': ['IPA-mk'],
'Malagasy': ['IPA-mg'],
'Malay': ['IPA-ms', 'IPA-id'],
'Malayalam': ['IPA-ml'],
'Maltese': ['IPA-mt'],
'Mandarin': ['IPA-cmn'],
'Manx': ['IPA-gv'],
'Maithili': ['IPA-mai'],
'Māori': ['IPA-mi'],
'Marathi': ['IPA-mr'],
'Marshallese': ['IPA-mh'],
'Mauritian Creole': ['IPA-mfe'],
'Mayan': ['IPA-myn'],
'Mongolian': ['IPA-mn'],
'Nahuatl': ['IPA-nah'],
'Navajo': ['IPA-nv'],
'Neapolitan': ['IPA-nap'],
'Nepali': ['IPA-ne'],
'Nguni': ['IPA-ss', 'IPA-xh', 'IPA-zu'],
'Northern Thai': ['IPA-nod'],
'Norwegian': ['IPA-no'],
'Occitan': ['IPA-oc'],
'Odia': ['IPA-or'],
'Old English': ['IPA-ang'],
'Persian': ['IPA-fa'],
'Piedmontese': ['IPA-pms'],
'Polish': ['IPA-pl'],
'Portuguese': ['IPA-pt'],
'Punjabi': ['IPA-pa'],
'Quechua': ['IPA-qu'],
'Romanian': ['IPA-ro'],
'Romansh': ['IPA-rm'],
'Russian': ['IPA-ru'],
'Sanskrit': ['IPA-sa'],
'Sardinian': ['IPA-sc'],
'Scottish Gaelic': ['IPA-gd'],
'Serbo-Croatian': ['IPA-sh', 'IPA-hr', 'IPA-sr'],
'Shan and Tai Lue': ['IPA-shn', 'IPA-khb'],
'Sicilian': ['IPA-scn'],
'Slovak': ['IPA-sk'],
'Slovene': ['IPA-sl'],
'Spanish': ['IPA-es'],
'Standard German': ['IPA-de'],
'Swahili': ['IPA-sw'],
'Swedish': ['IPA-sv'],
'Sylheti': ['IPA-syl'],
'Tagalog': ['IPA-tl'],
'Taiwanese Hokkien': ['IPA-taiwan'],
'Tamil': ['IPA-ta'],
'Tatar': ['IPA-tt', 'IPA-crh'],
'Telugu': ['IPA-te'],
'Thai': ['IPA-th', 'IPA-sou'],
'Tibetan': ['IPA-bo'],
'Tigrinya': ['IPA-ti'],
'Tunisian Arabic': ['IPA-aeb'],
'Turkish': ['IPA-tr'],
'Turkmen': ['IPA-tk'],
'Ukrainian': ['IPA-uk'],
'Uzbek': ['IPA-uz'],
'Venetian': ['IPA-vec'],
'Vietnamese': ['IPA-vi'],
'Walloon': ['IPA-wa'],
'Welsh': ['IPA-cy'],
'West Frisian': ['IPA-fy'],
'Wu Chinese': ['IPA-wuu'],
'Yiddish': ['IPA-yi'],
'Yoruba': ['IPA-yo'],
'Zhuang': ['IPA-za']
};
let isLocal = mw.config.get('wgWikiID') === 'enwiki';
mw.loader.using([
isLocal ? 'mediawiki.api' : 'mediawiki.ForeignApi',
'mediawiki.storage', 'jquery.textSelection',
'oojs-ui-windows', 'oojs-ui-widgets', 'oojs-ui.styles.icons-interactions',
'oojs-ui.styles.icons-editing-core', 'oojs-ui.styles.icons-editing-advanced'
], () => {
function IpaInputDialog(config) {
IpaInputDialog.parent.call(this, config);
this.$element.addClass('ipainput');
}
OO.inheritClass(IpaInputDialog, OO.ui.ProcessDialog);
IpaInputDialog.static.name = 'ipaInputDialog';
IpaInputDialog.static.title = 'IPAInput';
IpaInputDialog.static.actions = [
{
modes: 'config',
flags: ['safe', 'close']
},
{
action: 'transcribe',
label: 'Transcribe',
modes: 'config',
flags: ['primary', 'progressive']
},
{
action: 'goBack',
modes: 'transcription',
flags: ['safe', 'back']
},
{
action: 'insert',
label: 'Insert',
modes: 'transcription',
disabled: true,
flags: ['primary', 'progressive']
}
];
IpaInputDialog.prototype.initialize = function () {
IpaInputDialog.parent.prototype.initialize.apply(this, arguments);
this.setTemplateOptions = (value, update) => {
let options = [];
if (keyToTemplates.hasOwnProperty(value)) {
options.push(
...keyToTemplates[value].map(t => ({ data: t }))
);
if (update &&
this.templateInput.getMenu()
.findItemFromData(this.templateInput.getValue())
) {
this.templateInput.setValue(options[0].data);
}
}
options.push({ label: '(None)', data: '' });
this.templateInput.setOptions(options);
return options[0].data;
};
this.keyDropdown = new OO.ui.DropdownWidget({
$overlay: this.$overlay,
menu: {
items: Object.keys(keyToTemplates)
.map(k => new OO.ui.MenuOptionWidget({ label: k }))
}
});
this.keyDropdown.getMenu().on('select', item => {
this.setTemplateOptions(item.getLabel(), true);
});
this.templateInput = new OO.ui.ComboBoxInputWidget({
$overlay: this.$overlay
});
this.rememberCheckbox = new OO.ui.CheckboxInputWidget();
this.form = new OO.ui.FormLayout({
items: [
new OO.ui.FieldLayout(this.keyDropdown, {
label: 'Key:',
align: 'top'
}),
new OO.ui.FieldLayout(this.templateInput, {
label: 'Template:',
align: 'top'
}),
new OO.ui.FieldLayout(this.rememberCheckbox, {
label: 'Remember these for next time',
align: 'inline'
})
],
content: [
$('<input>').attr({
type: 'submit',
hidden: ''
})
],
classes: ['ipainput-config']
}).on('submit', () => {
this.executeAction('transcribe');
});
this.$body.append(this.form.$element);
this.keyHandler = e => {
if (e.shiftKey || e.altKey) return;
if ([e.ctrlKey, e.metaKey].filter(Boolean).length === 1 &&
e.which === 90
) {
this.undoButton.emit('click');
e.preventDefault();
}
};
this.finishTranscription = () => {
$(document).on('keydown.ipaInput', this.keyHandler);
this.actions.get()[3].setDisabled(false);
this.setSize('larger');
this.input.toggle(true).focus();
};
this.input = new OO.ui.TextInputWidget({
spellcheck: false,
classes: ['ipainput-input', 'IPA']
}).on('change', value => {
this.input.setIndicator(value ? 'clear' : null);
}).on('enter', () => {
this.executeAction('insert');
});
this.input.$input.on('keydown', e => {
if (e.which !== 27 || !this.input.getValue()) return;
e.stopPropagation();
this.input.setValue('');
});
this.input.$indicator.on('click', () => {
this.input.setValue('').focus();
});
this.$status = $('<div>').addClass('ipainput-status');
this.$parserOutput = $('<div>').attr({
class: 'mw-parser-output mw-body-content',
lang: 'en',
tabindex: -1
}).on('click', '.ipainput-symbol:not(.ipainput-symbol-disabled)', e => {
let $target = $(e.currentTarget).clone().find('.IPA');
if (!$target.length) $target = $target.end();
$target.find('.reference').remove();
let ins = $target.text().trim()
.replace(/◌|^[\(\/\[]+\s*(?=\S)|(\S)\s*[\)\/\]]+$/g, '$1');
if (e.currentTarget.classList.contains('ipainput-symbol-dia') &&
this.diaOnlyButton.getValue()
) {
let match = ins.normalize('NFD').match(/[^̧\P{Mn}]+/u);
if (match) ins = match[0];
}
let start = this.input.$input.prop('selectionStart');
let end = this.input.$input.prop('selectionEnd');
let text = this.input.getValue();
let pos = start + ins.length;
let newText = text.slice(0, start) + ins + text.slice(end);
this.input.setValue(newText).selectRange(pos).focus();
if (this.undoCache.length
? text !== this.undoCache[this.undoCache.length - 1][0]
: text
) {
this.undoCache.push([text, end]);
}
this.undoCache.push([newText, pos]);
this.undoCache = this.undoCache.slice(-500);
return false;
}).on('keydown', '.ipainput-symbol', function (e) {
if (e.ctrlKey || e.shiftKey || e.metaKey || e.altKey) return;
if (e.which === 13 || e.which === 32) {
e.preventDefault();
this.click();
this.focus();
}
}).on('click', 'a', e => {
if (e.ctrlKey || e.shiftKey || e.metaKey || e.altKey) return;
e.preventDefault();
});
this.undoButton = new OO.ui.ButtonWidget({
icon: 'undo',
title: 'Undo',
classes: ['ipainput-undo']
}).on('click', () => {
let arr = this.undoCache.pop();
if (!arr) {
this.input.setValue('').focus();
return;
}
if (this.undoCache.length && this.input.getValue() === arr[0]) {
arr = this.undoCache.pop();
}
this.input.setValue(arr[0]).selectRange(arr[1]).focus();
});
this.diaOnlyButton = new OO.ui.ToggleButtonWidget({
icon: 'searchDiacritics',
title: 'Insert diacrtics only',
classes: ['ipainput-diaonly']
}).on('change', enabled => {
this.$parserOutput.find('.ipainput-symbol:not(.ipainput-symbol-dia)')
.attr({
tabindex: enabled ? -1 : 0,
'aria-disabled': enabled ? 'true' : null
})
.toggleClass('ipainput-symbol-disabled', enabled);
});
this.input.$element.append(
this.undoButton.$element, this.diaOnlyButton.$element
);
this.$transcription = this.input.$element
.add(this.$status).add(this.$parserOutput);
};
IpaInputDialog.prototype.getSetupProcess = function (data) {
return IpaInputDialog.super.prototype.getSetupProcess.call(this, data)
.next(function () {
this.actions.setMode('config');
this.keyName = mw.storage.get('IpaInput-keyName') || 'English';
this.keyDropdown.getMenu().selectItemByLabel(this.keyName);
this.template = mw.storage.get('IpaInput-template');
let defTemplate = this.setTemplateOptions(this.keyName);
this.templateInput.setValue(
this.template === null ? defTemplate : this.template
);
}, this);
};
IpaInputDialog.prototype.getKey = function () {
let isGeneric = this.keyName === '(Full IPA chart)';
let pageName = isGeneric
? 'International Phonetic Alphabet chart'
: 'Help:IPA/' + this.keyName;
let pageUrl = mw.util.getUrl(pageName);
if (!isLocal) pageUrl = '//en.wikipedia.org' + pageUrl;
this.pushPending();
this.$status.empty().append(
'Loading ',
$('<a>').attr({
href: pageUrl,
target: '_blank'
}).text(pageName),
'...'
);
let api = isLocal ? new mw.Api() : new mw.ForeignApi('//en.wikipedia.org/w/api.php');
api.get({
action: 'parse',
page: pageName,
prop: 'text',
redirects: 1,
wrapoutputclass: '',
disablelimitreport: 1,
disableeditsection: 1,
disablestylededuplication: 1,
disabletoc: 1,
formatversion: 2
}).always((response, errorObj) => {
this.popPending();
let text = ((response || {}).parse || {}).text;
let errorMsg = ((errorObj || {}).error || {}).info;
if (!text || typeof response === 'string' || errorMsg) {
this.$status.text(errorMsg ? 'Error: ' + errorMsg : 'Unknown error');
return;
}
this.curKeyName = this.keyName;
let $tables = $($.parseHTML(text));
if (isGeneric) {
$tables = $tables.find('#Vowels.mw-headline').parent()
.nextUntil($tables.find('#See_also').parent())
.addBack();
} else {
$tables = $tables.filter(function () {
return this.nodeType === 1 && (
this.classList.contains('wikitable') ||
this.querySelector('.wikitable')
);
});
if ($tables.length > 1) {
$tables = $tables.first().nextUntil($tables.last())
.addBack().add($tables.last());
}
}
$tables.find('.IPA').filter(function () {
return /[\s,~]/.test(this.textContent.trim()) || this.querySelector('br');
}).find('*').addBack().contents().filter(function () {
return this.nodeType === 3;
}).replaceWith(function () {
return this.textContent.split(/([\s,~]+)/).reduce((acc, s, i) => {
if (s) {
acc.push(i % 2 ? s : $('<span>').attr({
class: 'ipainput-symbol',
tabindex: 0,
role: 'button'
}).text(s));
}
return acc;
}, []);
});
$tables.find('td, th').filter(function () {
if (this.querySelector('.ipainput-symbol, .IPA-vowels-container')) return;
return this.classList.contains('IPA') ||
this.querySelector('.IPA') &&
!this.querySelector('br, p') &&
!$(this).find(':not(.IPA, .IPA *, .reference, .reference *)').addBack().contents().get()
.some(n => n.nodeType === 3 && /\S/.test(n.textContent));
}).addClass('ipainput-symbol').attr({
tabindex: 0,
role: 'button'
});
let $spans = $tables.find('.IPA:not(.ipainput-symbol, .ipainput-symbol .IPA)').filter(function () {
return !this.querySelector('.ipainput-symbol');
});
let consec = [];
$spans.filter(function (i) {
if ($spans[i + 1] === this.nextSibling) {
consec.push(this);
} else if (consec.length) {
consec.push(this);
$(consec).wrapAll('<span>').parent()
.addClass('ipainput-symbol').attr({
tabindex: 0,
role: 'button'
});
consec.length = 0;
} else {
return true;
}
}).addClass('ipainput-symbol').attr({
tabindex: 0,
role: 'button'
});
$tables.find('a').attr('tabindex', -1);
$tables.find('a[href^="#"]').attr('href', function () {
return pageUrl + this.hash;
});
if (!isLocal) {
$tables.find('a[href]').prop('host', 'en.wikipedia.org');
}
let hasDia = $tables.find('.ipainput-symbol').filter(function () {
return /[^̧\P{Mn}]/u.test(this.textContent.normalize('NFD'));
}).addClass('ipainput-symbol-dia').length && true;
this.diaOnlyButton.setValue().toggle(hasDia);
this.$status.html(this.$status.children());
this.$parserOutput.append($tables);
this.finishTranscription();
});
};
IpaInputDialog.prototype.getActionProcess = function (action) {
if (action === 'transcribe') {
this.template = this.templateInput.getValue();
this.keyName = this.keyDropdown.getMenu().findSelectedItem().getLabel();
if (this.rememberCheckbox.isSelected()) {
if (this.keyName === 'English' &&
this.template === keyToTemplates[this.keyName][0]
) {
mw.storage.remove('IpaInput-keyName');
mw.storage.remove('IpaInput-template');
} else {
mw.storage.set('IpaInput-keyName', this.keyName);
mw.storage.set('IpaInput-template', this.template);
}
}
this.actions.setMode('transcription');
this.form.toggle(false).$element.after(this.$transcription);
if (this.keyName === this.curKeyName) {
this.finishTranscription();
} else {
this.actions.get()[3].setDisabled(true);
this.input.toggle(false).setValue('');
this.undoCache = [];
this.$parserOutput.empty();
this.getKey();
}
} else {
$(document).off('keydown.ipaInput');
this.actions.setMode('config');
this.$transcription.detach();
this.form.toggle(true);
this.setSize('medium');
if (action === 'insert') {
let text = this.input.getValue().trim();
if (this.keyName === 'English') {
text = text
.replace(/\s+/g, '_')
.replace(/a[ɪʊ]ər|ɔɪər|[ɛɪʊ]ə[ˈˌ]r|\.\.\.|[ɑɔɜ]ːr|[ɛɪʊ]ər|!!|,_|a[ɪʊ]|[dlnstzθ]j(?=u|ʊə)|dʒ|eɪ|hw|[iuɑɔɜ]ː|oʊ|tʃ|[æɒɛɪʊʌ]r|[æɒ]̃|ɔɪ|(?:(?<=[bdfkprstvxzðɡʃʒʔθ]\.?)ə[ln]|(?<=[fsvzðʃʒθ]\.?)əm|ər)(?![aeæɑɒɔɛɜʊʌˈˌ]|[iu]ː|ɪə)|[!#\(\)\-\._bdfhijklmnprstuvwxzæðŋɒəɛɡɪʃʊʌʒʔˈˌθ]/g, '$&|')
.replace(/\|$/, '');
}
if (document.documentElement.classList.contains('ve-active')) {
if (this.template) {
text = [{
type: 'mwTransclusionInline',
attributes: {
mw: {
parts: [{
template: {
target: { wt: this.template },
params: text.split('|').reduce((acc, s, i) => {
acc[i + 1] = { wt: s };
return acc;
}, {})
}
}]
}
}
}];
}
ve.init.target.getSurface().getModel().getFragment().collapseToEnd()
.insertContent(text).collapseToEnd().select();
} else {
if (this.template) text = `{{${this.template}|${text}}}`;
$('#wpTextbox1').textSelection('encapsulateSelection', {
peri: text,
replace: true
});
}
this.input.setValue('');
this.undoCache = [];
this.close();
}
}
return IpaInputDialog.super.prototype.getActionProcess.call(this, action);
};
let winMan = new OO.ui.WindowManager();
winMan.$element.appendTo(document.body);
window.ipaInputDialog = new IpaInputDialog();
winMan.addWindows([window.ipaInputDialog]);
window.ipaInputDialog.open();
});
})();
lo9v942t3s0qj3tq9c1rqmm7dndnnx5
Mwbot-rs/Save
0
122864
519261
519196
2022-07-29T18:12:44Z
Mwbot-rs test
52001
Test suite edit
wikitext
text/x-wiki
It has been 1659118363 seconds since the epoch.
ousx36hi2678mb527dicwbpt0a1vo5w
519262
519261
2022-07-29T18:14:13Z
Mwbot-rs test
52001
Test suite edit
wikitext
text/x-wiki
It has been 1659118453 seconds since the epoch.
hzcj9k0fy7c9uvc51ur1ykkrnf88xcq
519263
519262
2022-07-29T18:14:33Z
Mwbot-rs test
52001
Test suite edit
wikitext
text/x-wiki
It has been 1659118473 seconds since the epoch.
lqn996j2p0lbjxhhlpysejqpb1bigps
519264
519263
2022-07-29T18:16:16Z
Mwbot-rs test
52001
Test suite edit
wikitext
text/x-wiki
It has been 1659118575 seconds since the epoch.
g04bgbgnqz9xgbqwz3h44mfk20m9go6
User:SongVĩ.Bot II
2
124239
519260
519192
2022-07-29T17:00:10Z
SongVĩ.Bot II
52414
[[User:SongVĩ.Bot II|Task 0]]: Đã 214 ngày...
wikitext
text/x-wiki
Cập nhật lần cuối: 29-07-2022
Đã 214 ngày...
smxnamoj39tqwax3bvzjsm13tnt9fnx
User:Ankit18gupta/Editwizard.js
2
126974
519239
518547
2022-07-29T14:23:07Z
Ankit18gupta
52763
javascript
text/javascript
// <nowiki>
$(document).ready(function () {
//CSS loader
mw.loader.addStyleTag( '.heading { font-size: 18px; text-align: center; margin: 5px; width:100% }');
mw.loader.addStyleTag( '.help { font: 13px cursive; font-style: italic }');
mw.loader.addStyleTag( '.status { font: 13px sans-serif; margin: 5px; width: 70%; font-style: italic; width: 100% }');
mw.loader.addStyleTag( '.messageStatus { font: 12px sans-serif; margin-left: 1rem; margin: 5px; width: 70%; font-style: italic; width: 100% }');
mw.loader.addStyleTag( '.button { display: inline-block; text-align: center; margin-top: 10px; margin-bottom: 10px }' );
mw.loader.addStyleTag( '.container { width: 415px; height:200px }');
mw.loader.addStyleTag( '.status:empty { display: none }');
// It is important to make sure that OOUI is loaded before we can make use of it.
mw.loader.using("oojs-ui", "mediawiki.api").done(function () {
var linkfieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT REQUEST WIZARD",
}),
linkheading = new OO.ui.LabelWidget({
label: "Give a source for your fact",
classes: ["label"],
}),
linkhelp = new OO.ui.PopupButtonWidget({
icon: "info",
classes: ["help"],
framed: false,
label: "More information",
invisibleLabel: true,
popup: {
head: true,
icon: "infoFilled",
label: "More information",
$content: $(
"<p>This is the link of the source of your quote.\u200e</p>"
),
padded: true,
align: "center",
width: "300px",
autoFlip: true,
},
}),
linkinput = new OO.ui.TextInputWidget({
placeholder: "Enter the URL",
classes: ["box"],
}),
linkstatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
linkverifybutton = new OO.ui.ButtonWidget({
label: "Verify",
classes: ["button"],
flags: ["primary", "progressive"],
}),
linkbutton = new OO.ui.ButtonWidget({
label: "Next",
classes: ["button"],
flags: ["primary", "progressive"],
}),
linkpanel = new OO.ui.PanelLayout({
content: [
linkfieldset,
linkheading,
linkhelp,
linkinput,
linkstatus,
linkverifybutton,
linkbutton,
],
padded: true,
}),
selectfieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT WIZARD",
}),
selectfieldsetcontent = new OO.ui.FieldsetLayout({
label: "Select the sentence in the article that your text should go after and click Next",
classes: ["label"],
}),
selectstatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
selectbutton = new OO.ui.ButtonWidget({
label: "Next",
classes: ["button"],
flags: ["primary", "progressive"],
}),
selectbackbutton = new OO.ui.ButtonWidget({
label: "Back",
classes: ["button"],
flags: ["primary", "progressive"],
}),
selectpanel = new OO.ui.PanelLayout({
content: [
selectfieldset,
selectfieldsetcontent,
selectstatus,
selectbackbutton,
selectbutton,
],
padded: true,
}),
quotefieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT WIZARD",
}),
quoteheading = new OO.ui.LabelWidget({
label: "Quote from your source that supports your fact",
classes: ["label"],
}),
quotehelp = new OO.ui.PopupButtonWidget({
icon: "info",
classes: ["help"],
framed: false,
label: "More information",
invisibleLabel: true,
popup: {
head: true,
icon: "infoFilled",
label: "More information",
$content: $(
"<p>Type the quote text from the above-mentioned source you want to edit.\u200e</p>"
),
padded: true,
align: "backwards",
autoFlip: true,
},
}),
quoteinput = new OO.ui.MultilineTextInputWidget({
autosize: false,
classes: ["box"],
rows: 3,
placeholder: "Enter the Quote from the source",
}),
quotestatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
quotebutton = new OO.ui.ButtonWidget({
label: "Next",
classes: ["button"],
flags: ["primary", "progressive"],
}),
quotebackbutton = new OO.ui.ButtonWidget({
label: "Back",
classes: ["button"],
flags: ["primary", "progressive"],
}),
quotepanel = new OO.ui.PanelLayout({
content: [
quotefieldset,
quoteheading,
quotehelp,
quoteinput,
quotestatus,
quotebackbutton,
quotebutton,
],
padded: true,
}),
requotefieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT WIZARD",
}),
requoteheading = new OO.ui.LabelWidget({
label: "Rewrite the quote in your own words",
classes: ["label"],
}),
requotehelp = new OO.ui.PopupButtonWidget({
icon: "info",
classes: ["help"],
framed: false,
label: "More information",
invisibleLabel: true,
popup: {
head: true,
icon: "infoFilled",
label: "More information",
$content: $("<p>Rephrase the quote in your own words.\u200e</p>"),
padded: true,
width: "280px",
align: "center",
autoFlip: true,
},
}),
requoteinput = new OO.ui.MultilineTextInputWidget({
autosize: false,
classes: ["box"],
rows: 3,
placeholder: "Enter the rephrased Quote",
}),
requotestatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
requotebutton = new OO.ui.ButtonWidget({
label: "Publish",
classes: ["button"],
flags: ["primary", "progressive"],
}),
requotebackbutton = new OO.ui.ButtonWidget({
label: "Back",
classes: ["button"],
flags: ["primary", "progressive"],
}),
requotepanel = new OO.ui.PanelLayout({
content: [
requotefieldset,
requoteheading,
requotehelp,
requoteinput,
requotestatus,
requotebackbutton,
requotebutton,
],
padded: true,
});
var stack = new OO.ui.StackLayout({
classes: ["container"],
items: [linkpanel, selectpanel, quotepanel, requotepanel],
});
//all the functional buttons
linkverifybutton.on('click', handlelinkVerify);
linkbutton.on('click', handlelinkNext);
quotebutton.on('click', handlequoteNext);
selectbutton.on('click', handleselectNext);
quotebackbutton.on('click', handlequoteBack);
requotebackbutton.on('click', handlerequoteBack);
selectbackbutton.on('click', handleselectBack);
requotebutton.on('click', handlePublish);
selectbutton.on('click', getSelectionText);
let check = 0;
async function handlelinkVerify(){
const linkValue = linkinput.getValue();
linkstatus.setType("none");
linkstatus.setIcon("null");
linkstatus.setLabel("Loading...");
if (linkValue === "") {
linkstatus.setType("warning");
linkstatus.setLabel("The input cannot be left empty");
}
//Making an API call to the backend to verify if the quote comes from the source
const host = window.ERW_DEV_MODE ? 'https://edit-wizard.toolforge.org' : 'http://localhost:3000';
const response = await fetch(`http://localhost:3000/api/v1/verifySource`, {
method: "POST",
body: JSON.stringify({ linkValue}),
headers: { 'Content-Type': 'application/json'},
})
const { comment, flag, kind } = await response.json()
if(flag==2){
check = 3;
linkstatus.setType("error");
linkstatus.setLabel("This is not a valid URL");
}
if (flag==1) {
check = 1;
linkstatus.setType("warning");
linkstatus.setLabel(comment);
}
if (kind == "blacklisted" || kind == "unreliable") {
check = 2;
linkstatus.setType("error");
linkstatus.setLabel(comment);
}
if (flag==0 && check!=3){
check = 1;
linkstatus.setType("success");
linkstatus.setLabel("Source probably OK");
}
}
let linkurl, website, selected=0;
async function handlelinkNext(){
const linkValue = linkinput.getValue();
const query= encodeURIComponent(linkValue);
//API call to make a request from Citoid
if (linkValue!= "") {
fetch(`https://en.wikipedia.org/api/rest_v1/data/citation/mediawiki/${query}`, {
headers: {
'Content-Type': 'application/json',
'Api-User-Agent': 'w:en:User:Ankit18gupta/MyScript.js'
}
})
.then(response => response.json())
.then(citationArray => {
linkurl = citationArray[0].url;
website = citationArray[0].title;
})
.catch((error) => {
console.log("Error: ",error);
});
}
// If the linkValue is empty, prompt a warning
if (linkValue === "") {
linkstatus.setType("warning");
linkstatus.setLabel("The input cannot be left empty");
}
else if(check == 0){
linkstatus.setType("warning");
linkstatus.setLabel("Please verify the quote first");
}
else if(check == 2){
linkstatus.setType("error");
linkstatus.setLabel("This is a unreliable source, we cannot proceed");
}
else if(check == 3){
linkstatus.setType("error");
linkstatus.setLabel("This is not a valid URL, we cannot proceed");
}
else if(check == 1){
stack.setItem( selectpanel );
$("#edit-wizard-link span").html("Done selecting");
$( 'body' ).css( 'background-color', '#b8b9ba' );
$( '#mw-head' ).css( 'background-color', '#b8b9ba' );
selected = 1;
}
}
function doneSelecting(){
// if(selected){
// popUp.toggle(false);
// }
if(selected){
selectValue = getSelectionText();
selectionSection = getSelectionSection();
// If the selectValue is empty, prompt a warning
if (selectValue === "") {
selectstatus.setType("warning");
selectstatus.setLabel("Please select the text before continuing");
}
else{
stack.setItem( quotepanel );
$("#edit-wizard-link span").html("Edit Wizard");
$( 'body' ).css( 'background-color', '#f6f6f6' );
$( '#mw-head' ).css( 'background-color', '#f6f6f6' );
selected = 0;
}
}
}
// Function to get the Selected Text
function getSelectionText() {
var text = "";
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection && document.selection.type !== "Control") {
text = document.selection.createRange().text;
}
return text;
}
// Funtion to get the target Section
function getSelectionSection(){
var e = window.getSelection().anchorNode.parentElement.closest('p');
var found_it = false;
while (e.tagName.toLowerCase() !== 'body') {
if (e.tagName.toLowerCase() === 'h2') {
found_it = true;
break;
}
if (e.previousElementSibling) {
e = e.previousElementSibling;
} else {
e = e.parentNode;
}
}
return e.firstChild.textContent;
}
let selectValue, selectionSection;
function handleselectNext(){
selectValue = getSelectionText();
// If the selectValue is empty, prompt a warning
if (selectValue === "") {
selectstatus.setType("warning");
selectstatus.setLabel("Please select the text before continuing");
}
else{
selectionSection = getSelectionSection();
stack.setItem( quotepanel );
selected = 0;
$("#edit-wizard-link span").html("Edit Wizard");
$( 'body' ).css( 'background-color', '#f6f6f6' );
$( '#mw-head' ).css( 'background-color', '#f6f6f6' );
}
}
async function handlequoteNext(){
const quoteValue = quoteinput.getValue();
const linkValue = linkinput.getValue();
quotestatus.setType("none");
quotestatus.setIcon("null");
quotestatus.setLabel("Loading...");
//Making an API call to the backend to verify if the quote comes from the source
const host = window.ERW_DEV_MODE ? 'https://edit-wizard.toolforge.org' : 'http://localhost:3000';
const response = await fetch(`http://localhost:3000/api/v1/verifyQuote`, {
method: "POST",
body: JSON.stringify({ linkValue, quoteValue }),
headers: { 'Content-Type': 'application/json' },
})
const { isParagraphTextOnPage } = await response.json()
if (quoteValue === "") {
quotestatus.setType("warning");
quotestatus.setLabel("The input cannot be left empty");
}
else if(!isParagraphTextOnPage) {
quotestatus.setType("error");
quotestatus.setLabel("The quote does not match");
}
else if (isParagraphTextOnPage) {
quotestatus.setType("success");
quotestatus.setLabel("Verified!");
stack.setItem( requotepanel );
}
}
function handleselectBack(){
stack.setItem( linkpanel );
$("#edit-wizard-link span").html("Edit Wizard");
$( 'body' ).css( 'background-color', '#f6f6f6' );
$( '#mw-head' ).css( 'background-color', '#f6f6f6' );
}
function handlequoteBack(){
stack.setItem( selectpanel );
selected = 1;
$("#edit-wizard-link span").html("Done selecting");
$( 'body' ).css( 'background-color', '#b8b9ba' );
$( '#mw-head' ).css( 'background-color', '#b8b9ba' );
}
function handlerequoteBack(){
stack.setItem( quotepanel );
selected = 0;
}
// Function to send request to the edit page
function editPage( info ) {
var api = new mw.Api();
api.postWithToken("csrf", {
action: 'edit',
title: info.title,
appendtext: info.text,
summary: info.summary
} ).then(function( data ) {
OO.ui.alert( 'Edit Request sent to talk page..!' );
} ).catch( function(code, data) {
console.log( api.getErrorMessage( data ).text());
} );
}
function handlePublish(){
const linkValue = linkinput.getValue();
const quoteValue = quoteinput.getValue();
const requoteValue = requoteinput.getValue();
const firstthree = quoteValue.split(' ').slice(0,3).join(' ');
const array = quoteValue.split(' ');
const len = array.length - 3;
const lastthree = quoteValue.split(' ').slice(len).join(' ');
if (requoteValue === "") {
requotestatus.$element.show();
requotestatus.setType("warning");
requotestatus.setLabel("The input cannot be left empty");
}
else{
requotestatus.$element.hide();
// API calls code goes here
editPage({
title: (new mw.Title(mw.config.get("wgPageName"))).getTalkPage().toText(),
text: '\n== Edit Request made by {{subst:REVISIONUSER}} ~~~~~ == \n' + '<br><b>Citation:</b> ' + `[${linkValue} ${website}]` + '<br><b>Section to Edit:</b> ' + selectionSection + '<br><b>Spot where to add the fact:</b> ' + selectValue + '<br><b>Quote:</b> ' + 'Quote starts here - ' + firstthree + '... ' + lastthree + '<br><b>Rephrased Quote:</b> ' + requoteValue + '<br> ~~~~',
summary: 'Edit Request to add a fact'
});
}
}
var node = mw.util.addPortletLink(
'p-views',
"#",
'Edit Wizard',
'edit-wizard-link',
'Edit Wizard',
"",
"#ca-history",
);
// A popup widget is instantiated
var popUp = new OO.ui.PopupWidget({
align: "forwards",
$floatableContainer: $(node),
$content: stack.$element,
padded: true,
popup: false,
width: 440,
height: 260,
head: true,
// autoClose: false,
hideCloseButton: false,
});
//If we are done selecting the text it automatically moves to the next panel
// $(node).on('click', doneSelecting);
$(node).on('click', function(e){
popUp.toggle();
e.preventDefault();
})
$(document.body).append(popUp.$element);
});
});
// </nowiki>
48y1t3nsgwx6yguxutzyk52fwe3fzka
519268
519239
2022-07-29T19:18:30Z
Ankit18gupta
52763
javascript
text/javascript
// <nowiki>
$(document).ready(function () {
//CSS loader
mw.loader.addStyleTag( '.heading { font-size: 18px; text-align: center; margin: 5px; width:100% }');
mw.loader.addStyleTag( '.help { font: 13px cursive; font-style: italic }');
mw.loader.addStyleTag( '.status { font: 13px sans-serif; margin: 5px; width: 70%; font-style: italic; width: 100% }');
mw.loader.addStyleTag( '.messageStatus { font: 12px sans-serif; margin-left: 1rem; margin: 5px; width: 70%; font-style: italic; width: 100% }');
mw.loader.addStyleTag( '.button { display: inline-block; text-align: center; margin-top: 10px; margin-bottom: 10px }' );
mw.loader.addStyleTag( '.container { width: 415px; height:200px }');
mw.loader.addStyleTag( '.status:empty { display: none }');
// It is important to make sure that OOUI is loaded before we can make use of it.
mw.loader.using("oojs-ui", "mediawiki.api").done(function () {
var linkfieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT REQUEST WIZARD",
}),
linkheading = new OO.ui.LabelWidget({
label: "Give a source for your fact",
classes: ["label"],
}),
linkhelp = new OO.ui.PopupButtonWidget({
icon: "info",
classes: ["help"],
framed: false,
label: "More information",
invisibleLabel: true,
popup: {
head: true,
icon: "infoFilled",
label: "More information",
$content: $(
"<p>This is the link of the source of your quote.\u200e</p>"
),
padded: true,
align: "center",
width: "300px",
autoFlip: true,
},
}),
linkinput = new OO.ui.TextInputWidget({
placeholder: "Enter the URL",
classes: ["box"],
}),
linkstatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
linkverifybutton = new OO.ui.ButtonWidget({
label: "Verify",
classes: ["button"],
flags: ["primary", "progressive"],
}),
linkbutton = new OO.ui.ButtonWidget({
label: "Next",
classes: ["button"],
flags: ["primary", "progressive"],
}),
linkpanel = new OO.ui.PanelLayout({
content: [
linkfieldset,
linkheading,
linkhelp,
linkinput,
linkstatus,
linkverifybutton,
linkbutton,
],
padded: true,
}),
selectfieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT WIZARD",
}),
selectfieldsetcontent = new OO.ui.FieldsetLayout({
label: "Select the sentence in the article that your text should go after and click Next",
classes: ["label"],
}),
selectstatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
selectbutton = new OO.ui.ButtonWidget({
label: "Next",
classes: ["button"],
flags: ["primary", "progressive"],
}),
selectbackbutton = new OO.ui.ButtonWidget({
label: "Back",
classes: ["button"],
flags: ["primary", "progressive"],
}),
selectpanel = new OO.ui.PanelLayout({
content: [
selectfieldset,
selectfieldsetcontent,
selectstatus,
selectbackbutton,
selectbutton,
],
padded: true,
}),
quotefieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT WIZARD",
}),
quoteheading = new OO.ui.LabelWidget({
label: "Quote from your source that supports your fact",
classes: ["label"],
}),
quotehelp = new OO.ui.PopupButtonWidget({
icon: "info",
classes: ["help"],
framed: false,
label: "More information",
invisibleLabel: true,
popup: {
head: true,
icon: "infoFilled",
label: "More information",
$content: $(
"<p>Type the quote text from the above-mentioned source you want to edit.\u200e</p>"
),
padded: true,
align: "backwards",
autoFlip: true,
},
}),
quoteinput = new OO.ui.MultilineTextInputWidget({
autosize: false,
classes: ["box"],
rows: 3,
placeholder: "Enter the Quote from the source",
}),
quotestatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
quotebutton = new OO.ui.ButtonWidget({
label: "Next",
classes: ["button"],
flags: ["primary", "progressive"],
}),
quotebackbutton = new OO.ui.ButtonWidget({
label: "Back",
classes: ["button"],
flags: ["primary", "progressive"],
}),
quotepanel = new OO.ui.PanelLayout({
content: [
quotefieldset,
quoteheading,
quotehelp,
quoteinput,
quotestatus,
quotebackbutton,
quotebutton,
],
padded: true,
}),
requotefieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT WIZARD",
}),
requoteheading = new OO.ui.LabelWidget({
label: "Rewrite the quote in your own words",
classes: ["label"],
}),
requotehelp = new OO.ui.PopupButtonWidget({
icon: "info",
classes: ["help"],
framed: false,
label: "More information",
invisibleLabel: true,
popup: {
head: true,
icon: "infoFilled",
label: "More information",
$content: $("<p>Rephrase the quote in your own words.\u200e</p>"),
padded: true,
width: "280px",
align: "center",
autoFlip: true,
},
}),
requoteinput = new OO.ui.MultilineTextInputWidget({
autosize: false,
classes: ["box"],
rows: 3,
placeholder: "Enter the rephrased Quote",
}),
requotestatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
requotebutton = new OO.ui.ButtonWidget({
label: "Publish",
classes: ["button"],
flags: ["primary", "progressive"],
}),
requotebackbutton = new OO.ui.ButtonWidget({
label: "Back",
classes: ["button"],
flags: ["primary", "progressive"],
}),
requotepanel = new OO.ui.PanelLayout({
content: [
requotefieldset,
requoteheading,
requotehelp,
requoteinput,
requotestatus,
requotebackbutton,
requotebutton,
],
padded: true,
});
var stack = new OO.ui.StackLayout({
classes: ["container"],
items: [linkpanel, selectpanel, quotepanel, requotepanel],
});
//all the functional buttons
linkverifybutton.on('click', handlelinkVerify);
linkbutton.on('click', handlelinkNext);
quotebutton.on('click', handlequoteNext);
selectbutton.on('click', handleselectNext);
quotebackbutton.on('click', handlequoteBack);
requotebackbutton.on('click', handlerequoteBack);
selectbackbutton.on('click', handleselectBack);
requotebutton.on('click', handlePublish);
selectbutton.on('click', getSelectionText);
let check = 0;
async function handlelinkVerify(){
const linkValue = linkinput.getValue();
linkstatus.setType("none");
linkstatus.setIcon("null");
linkstatus.setLabel("Loading...");
if (linkValue === "") {
linkstatus.setType("warning");
linkstatus.setLabel("The input cannot be left empty");
}
//Making an API call to the backend to verify if the quote comes from the source
const host = window.ERW_DEV_MODE ? 'https://edit-wizard.toolforge.org' : 'http://localhost:3000';
const response = await fetch(`https://edit-wizard.toolforge.org/api/v1/verifySource`, {
method: "POST",
body: JSON.stringify({ linkValue}),
headers: { 'Content-Type': 'application/json'},
})
const { comment, flag, kind } = await response.json()
if(flag==2){
check = 3;
linkstatus.setType("error");
linkstatus.setLabel("This is not a valid URL");
}
if (flag==1) {
check = 1;
linkstatus.setType("warning");
linkstatus.setLabel(comment);
}
if (kind == "blacklisted" || kind == "unreliable") {
check = 2;
linkstatus.setType("error");
linkstatus.setLabel(comment);
}
if (flag==0 && check!=3){
check = 1;
linkstatus.setType("success");
linkstatus.setLabel("Source probably OK");
}
}
let linkurl, website, selected=0;
async function handlelinkNext(){
const linkValue = linkinput.getValue();
const query= encodeURIComponent(linkValue);
//API call to make a request from Citoid
if (linkValue!= "") {
fetch(`https://en.wikipedia.org/api/rest_v1/data/citation/mediawiki/${query}`, {
headers: {
'Content-Type': 'application/json',
'Api-User-Agent': 'w:en:User:Ankit18gupta/MyScript.js'
}
})
.then(response => response.json())
.then(citationArray => {
linkurl = citationArray[0].url;
website = citationArray[0].title;
})
.catch((error) => {
console.log("Error: ",error);
});
}
// If the linkValue is empty, prompt a warning
if (linkValue === "") {
linkstatus.setType("warning");
linkstatus.setLabel("The input cannot be left empty");
}
else if(check == 0){
linkstatus.setType("warning");
linkstatus.setLabel("Please verify the quote first");
}
else if(check == 2){
linkstatus.setType("error");
linkstatus.setLabel("This is a unreliable source, we cannot proceed");
}
else if(check == 3){
linkstatus.setType("error");
linkstatus.setLabel("This is not a valid URL, we cannot proceed");
}
else if(check == 1){
stack.setItem( selectpanel );
$("#edit-wizard-link span").html("Done selecting");
$( 'body' ).css( 'background-color', '#b8b9ba' );
$( '#mw-head' ).css( 'background-color', '#b8b9ba' );
selected = 1;
}
}
function doneSelecting(){
// if(selected){
// popUp.toggle(false);
// }
if(selected){
selectValue = getSelectionText();
selectionSection = getSelectionSection();
// If the selectValue is empty, prompt a warning
if (selectValue === "") {
selectstatus.setType("warning");
selectstatus.setLabel("Please select the text before continuing");
}
else{
stack.setItem( quotepanel );
$("#edit-wizard-link span").html("Edit Wizard");
$( 'body' ).css( 'background-color', '#f6f6f6' );
$( '#mw-head' ).css( 'background-color', '#f6f6f6' );
selected = 0;
}
}
}
// Function to get the Selected Text
function getSelectionText() {
var text = "";
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection && document.selection.type !== "Control") {
text = document.selection.createRange().text;
}
return text;
}
// Funtion to get the target Section
function getSelectionSection(){
var e = window.getSelection().anchorNode.parentElement.closest('p');
var found_it = false;
while (e.tagName.toLowerCase() !== 'body') {
if (e.tagName.toLowerCase() === 'h2') {
found_it = true;
break;
}
if (e.previousElementSibling) {
e = e.previousElementSibling;
} else {
e = e.parentNode;
}
}
return e.firstChild.textContent;
}
let selectValue, selectionSection;
function handleselectNext(){
selectValue = getSelectionText();
// If the selectValue is empty, prompt a warning
if (selectValue === "") {
selectstatus.setType("warning");
selectstatus.setLabel("Please select the text before continuing");
}
else{
selectionSection = getSelectionSection();
stack.setItem( quotepanel );
selected = 0;
$("#edit-wizard-link span").html("Edit Wizard");
$( 'body' ).css( 'background-color', '#f6f6f6' );
$( '#mw-head' ).css( 'background-color', '#f6f6f6' );
}
}
async function handlequoteNext(){
const quoteValue = quoteinput.getValue();
const linkValue = linkinput.getValue();
quotestatus.setType("none");
quotestatus.setIcon("null");
quotestatus.setLabel("Loading...");
//Making an API call to the backend to verify if the quote comes from the source
const host = window.ERW_DEV_MODE ? 'https://edit-wizard.toolforge.org' : 'http://localhost:3000';
const response = await fetch(`https://edit-wizard.toolforge.org/api/v1/verifyQuote`, {
method: "POST",
body: JSON.stringify({ linkValue, quoteValue }),
headers: { 'Content-Type': 'application/json' },
})
const { isParagraphTextOnPage } = await response.json()
if (quoteValue === "") {
quotestatus.setType("warning");
quotestatus.setLabel("The input cannot be left empty");
}
else if(!isParagraphTextOnPage) {
quotestatus.setType("error");
quotestatus.setLabel("The quote does not match");
}
else if (isParagraphTextOnPage) {
quotestatus.setType("success");
quotestatus.setLabel("Verified!");
stack.setItem( requotepanel );
}
}
function handleselectBack(){
stack.setItem( linkpanel );
$("#edit-wizard-link span").html("Edit Wizard");
$( 'body' ).css( 'background-color', '#f6f6f6' );
$( '#mw-head' ).css( 'background-color', '#f6f6f6' );
}
function handlequoteBack(){
stack.setItem( selectpanel );
selected = 1;
$("#edit-wizard-link span").html("Done selecting");
$( 'body' ).css( 'background-color', '#b8b9ba' );
$( '#mw-head' ).css( 'background-color', '#b8b9ba' );
}
function handlerequoteBack(){
stack.setItem( quotepanel );
selected = 0;
}
// Function to send request to the edit page
function editPage( info ) {
var api = new mw.Api();
api.postWithToken("csrf", {
action: 'edit',
title: info.title,
appendtext: info.text,
summary: info.summary
} ).then(function( data ) {
OO.ui.alert( 'Edit Request sent to talk page..!' );
} ).catch( function(code, data) {
console.log( api.getErrorMessage( data ).text());
} );
}
function handlePublish(){
const linkValue = linkinput.getValue();
const quoteValue = quoteinput.getValue();
const requoteValue = requoteinput.getValue();
const firstthree = quoteValue.split(' ').slice(0,3).join(' ');
const array = quoteValue.split(' ');
const len = array.length - 3;
const lastthree = quoteValue.split(' ').slice(len).join(' ');
if (requoteValue === "") {
requotestatus.$element.show();
requotestatus.setType("warning");
requotestatus.setLabel("The input cannot be left empty");
}
else{
requotestatus.$element.hide();
// API calls code goes here
editPage({
title: (new mw.Title(mw.config.get("wgPageName"))).getTalkPage().toText(),
text: '\n== Edit Request made by {{subst:REVISIONUSER}} ~~~~~ == \n' + '<br><b>Citation:</b> ' + `[${linkValue} ${website}]` + '<br><b>Section to Edit:</b> ' + selectionSection + '<br><b>Spot where to add the fact:</b> ' + selectValue + '<br><b>Quote:</b> ' + 'Quote starts here - ' + firstthree + '... ' + lastthree + '<br><b>Rephrased Quote:</b> ' + requoteValue + '<br> ~~~~',
summary: 'Edit Request to add a fact'
});
}
}
var node = mw.util.addPortletLink(
'p-views',
"#",
'Edit Wizard',
'edit-wizard-link',
'Edit Wizard',
"",
"#ca-history",
);
// A popup widget is instantiated
var popUp = new OO.ui.PopupWidget({
align: "forwards",
$floatableContainer: $(node),
$content: stack.$element,
padded: true,
popup: false,
width: 440,
height: 260,
head: true,
// autoClose: false,
hideCloseButton: false,
});
//If we are done selecting the text it automatically moves to the next panel
// $(node).on('click', doneSelecting);
$(node).on('click', function(e){
popUp.toggle();
e.preventDefault();
})
$(document.body).append(popUp.$element);
});
});
// </nowiki>
97p1unv3k4euse5w3bdxbztocc7lx7t
519271
519268
2022-07-29T20:12:33Z
Ankit18gupta
52763
javascript
text/javascript
// <nowiki>
$(document).ready(function () {
//CSS loader
mw.loader.addStyleTag( '.heading { font-size: 18px; text-align: center; margin: 5px; width:100% }');
mw.loader.addStyleTag( '.help { font: 13px cursive; font-style: italic }');
mw.loader.addStyleTag( '.status { font: 13px sans-serif; margin: 5px; width: 70%; font-style: italic; width: 100% }');
mw.loader.addStyleTag( '.messageStatus { font: 12px sans-serif; margin-left: 1rem; margin: 5px; width: 70%; font-style: italic; width: 100% }');
mw.loader.addStyleTag( '.button { display: inline-block; text-align: center; margin-top: 10px; margin-bottom: 10px }' );
mw.loader.addStyleTag( '.container { width: 415px; height:200px }');
mw.loader.addStyleTag( '.status:empty { display: none }');
// It is important to make sure that OOUI is loaded before we can make use of it.
mw.loader.using("oojs-ui", "mediawiki.api").done(function () {
var linkfieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT REQUEST WIZARD",
}),
linkheading = new OO.ui.LabelWidget({
label: "Give a source for your fact",
classes: ["label"],
}),
linkhelp = new OO.ui.PopupButtonWidget({
icon: "info",
classes: ["help"],
framed: false,
label: "More information",
invisibleLabel: true,
popup: {
head: true,
icon: "infoFilled",
label: "More information",
$content: $(
"<p>This is the link of the source of your quote.\u200e</p>"
),
padded: true,
align: "center",
width: "300px",
autoFlip: true,
},
}),
linkinput = new OO.ui.TextInputWidget({
placeholder: "Enter the URL",
classes: ["box"],
}),
linkstatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
linkverifybutton = new OO.ui.ButtonWidget({
label: "Verify",
classes: ["button"],
flags: ["primary", "progressive"],
}),
linkbutton = new OO.ui.ButtonWidget({
label: "Next",
classes: ["button"],
flags: ["primary", "progressive"],
}),
linkpanel = new OO.ui.PanelLayout({
content: [
linkfieldset,
linkheading,
linkhelp,
linkinput,
linkstatus,
linkverifybutton,
linkbutton,
],
padded: true,
}),
selectfieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT WIZARD",
}),
selectfieldsetcontent = new OO.ui.FieldsetLayout({
label: "Select the sentence in the article that your text should go after and click Next",
classes: ["label"],
}),
selectstatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
selectbutton = new OO.ui.ButtonWidget({
label: "Next",
classes: ["button"],
flags: ["primary", "progressive"],
}),
selectbackbutton = new OO.ui.ButtonWidget({
label: "Back",
classes: ["button"],
flags: ["primary", "progressive"],
}),
selectpanel = new OO.ui.PanelLayout({
content: [
selectfieldset,
selectfieldsetcontent,
selectstatus,
selectbackbutton,
selectbutton,
],
padded: true,
}),
quotefieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT WIZARD",
}),
quoteheading = new OO.ui.LabelWidget({
label: "Quote from your source that supports your fact",
classes: ["label"],
}),
quotehelp = new OO.ui.PopupButtonWidget({
icon: "info",
classes: ["help"],
framed: false,
label: "More information",
invisibleLabel: true,
popup: {
head: true,
icon: "infoFilled",
label: "More information",
$content: $(
"<p>Type the quote text from the above-mentioned source you want to edit.\u200e</p>"
),
padded: true,
align: "backwards",
autoFlip: true,
},
}),
quoteinput = new OO.ui.MultilineTextInputWidget({
autosize: false,
classes: ["box"],
rows: 3,
placeholder: "Enter the Quote from the source",
}),
quotestatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
quotebutton = new OO.ui.ButtonWidget({
label: "Next",
classes: ["button"],
flags: ["primary", "progressive"],
}),
quotebackbutton = new OO.ui.ButtonWidget({
label: "Back",
classes: ["button"],
flags: ["primary", "progressive"],
}),
quotepanel = new OO.ui.PanelLayout({
content: [
quotefieldset,
quoteheading,
quotehelp,
quoteinput,
quotestatus,
quotebackbutton,
quotebutton,
],
padded: true,
}),
requotefieldset = new OO.ui.FieldsetLayout({
classes: ["heading"],
label: "EDIT WIZARD",
}),
requoteheading = new OO.ui.LabelWidget({
label: "Rewrite the quote in your own words",
classes: ["label"],
}),
requotehelp = new OO.ui.PopupButtonWidget({
icon: "info",
classes: ["help"],
framed: false,
label: "More information",
invisibleLabel: true,
popup: {
head: true,
icon: "infoFilled",
label: "More information",
$content: $("<p>Rephrase the quote in your own words.\u200e</p>"),
padded: true,
width: "280px",
align: "center",
autoFlip: true,
},
}),
requoteinput = new OO.ui.MultilineTextInputWidget({
autosize: false,
classes: ["box"],
rows: 3,
placeholder: "Enter the rephrased Quote",
}),
requotestatus = new OO.ui.MessageWidget({
inline: true,
classes: ["status"],
showClose: true,
icon:"none",
}),
requotebutton = new OO.ui.ButtonWidget({
label: "Publish",
classes: ["button"],
flags: ["primary", "progressive"],
}),
requotebackbutton = new OO.ui.ButtonWidget({
label: "Back",
classes: ["button"],
flags: ["primary", "progressive"],
}),
requotepanel = new OO.ui.PanelLayout({
content: [
requotefieldset,
requoteheading,
requotehelp,
requoteinput,
requotestatus,
requotebackbutton,
requotebutton,
],
padded: true,
});
var stack = new OO.ui.StackLayout({
classes: ["container"],
items: [linkpanel, selectpanel, quotepanel, requotepanel],
});
//all the functional buttons
linkverifybutton.on('click', handlelinkVerify);
linkbutton.on('click', handlelinkNext);
quotebutton.on('click', handlequoteNext);
selectbutton.on('click', handleselectNext);
quotebackbutton.on('click', handlequoteBack);
requotebackbutton.on('click', handlerequoteBack);
selectbackbutton.on('click', handleselectBack);
requotebutton.on('click', handlePublish);
selectbutton.on('click', getSelectionText);
let check = 0;
async function handlelinkVerify(){
const linkValue = linkinput.getValue();
linkstatus.setType("none");
linkstatus.setIcon("null");
linkstatus.setLabel("Loading...");
if (linkValue === "") {
linkstatus.setType("warning");
linkstatus.setLabel("The input cannot be left empty");
}
//Making an API call to the backend to verify if the quote comes from the source
const host = window.ERW_DEV_MODE ? 'https://edit-wizard.toolforge.org' : 'http://localhost:3000';
const response = await fetch(`https://edit-wizard.toolforge.org/api/v1/verifySource`, {
method: "POST",
body: JSON.stringify({ linkValue}),
headers: { 'Content-Type': 'application/json'},
})
const { comment, flag, kind } = await response.json()
if(flag==2){
check = 3;
linkstatus.setType("error");
linkstatus.setLabel("This is not a valid URL");
}
if (flag==1) {
check = 1;
linkstatus.setType("warning");
linkstatus.setLabel(comment);
}
if (kind == "blacklisted" || kind == "unreliable") {
check = 2;
linkstatus.setType("error");
linkstatus.setLabel(comment);
}
if (flag==0 && check!=3){
check = 1;
linkstatus.setType("success");
linkstatus.setLabel("Source probably OK");
}
}
let linkurl, website, selected=0;
async function handlelinkNext(){
const linkValue = linkinput.getValue();
const query= encodeURIComponent(linkValue);
//API call to make a request from Citoid
if (linkValue!= "") {
fetch(`https://en.wikipedia.org/api/rest_v1/data/citation/mediawiki/${query}`, {
headers: {
'Content-Type': 'application/json',
'Api-User-Agent': 'w:en:User:Ankit18gupta/MyScript.js'
}
})
.then(response => response.json())
.then(citationArray => {
linkurl = citationArray[0].url;
website = citationArray[0].title;
})
.catch((error) => {
console.log("Error: ",error);
});
}
// If the linkValue is empty, prompt a warning
if (linkValue === "") {
linkstatus.setType("warning");
linkstatus.setLabel("The input cannot be left empty");
}
else if(check == 0){
linkstatus.setType("warning");
linkstatus.setLabel("Please verify the quote first");
}
else if(check == 2){
linkstatus.setType("error");
linkstatus.setLabel("This is a unreliable source, we cannot proceed");
}
else if(check == 3){
linkstatus.setType("error");
linkstatus.setLabel("This is not a valid URL, we cannot proceed");
}
else if(check == 1){
stack.setItem( selectpanel );
$("#edit-wizard-link span").html("Done selecting");
$( 'body' ).css( 'background-color', '#b8b9ba' );
$( '#mw-head' ).css( 'background-color', '#b8b9ba' );
selected = 1;
}
}
function doneSelecting(){
// if(selected){
// popUp.toggle(false);
// }
if(selected){
selectValue = getSelectionText();
selectionSection = getSelectionSection();
// If the selectValue is empty, prompt a warning
if (selectValue === "") {
selectstatus.setType("warning");
selectstatus.setLabel("Please select the text before continuing");
}
else{
stack.setItem( quotepanel );
$("#edit-wizard-link span").html("Edit Wizard");
$( 'body' ).css( 'background-color', '#f6f6f6' );
$( '#mw-head' ).css( 'background-color', '#f6f6f6' );
selected = 0;
}
}
}
// Function to get the Selected Text
function getSelectionText() {
var text = "";
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection && document.selection.type !== "Control") {
text = document.selection.createRange().text;
}
return text;
}
// Funtion to get the target Section
function getSelectionSection(){
var e = window.getSelection().anchorNode.parentElement;
var found_it = false;
while (e.tagName.toLowerCase() !== 'body') {
if (e.tagName.toLowerCase() === 'h2') {
found_it = true;
break;
}
if (e.previousElementSibling) {
e = e.previousElementSibling;
} else {
e = e.parentNode;
}
}
return e.firstChild.textContent;
}
let selectValue, selectionSection;
function handleselectNext(){
selectValue = getSelectionText();
// If the selectValue is empty, prompt a warning
if (selectValue === "") {
selectstatus.setType("warning");
selectstatus.setLabel("Please select the text before continuing");
}
else{
selectionSection = getSelectionSection();
stack.setItem( quotepanel );
selected = 0;
$("#edit-wizard-link span").html("Edit Wizard");
$( 'body' ).css( 'background-color', '#f6f6f6' );
$( '#mw-head' ).css( 'background-color', '#f6f6f6' );
}
}
async function handlequoteNext(){
const quoteValue = quoteinput.getValue();
const linkValue = linkinput.getValue();
quotestatus.setType("none");
quotestatus.setIcon("null");
quotestatus.setLabel("Loading...");
//Making an API call to the backend to verify if the quote comes from the source
const host = window.ERW_DEV_MODE ? 'https://edit-wizard.toolforge.org' : 'http://localhost:3000';
const response = await fetch(`https://edit-wizard.toolforge.org/api/v1/verifyQuote`, {
method: "POST",
body: JSON.stringify({ linkValue, quoteValue }),
headers: { 'Content-Type': 'application/json' },
})
const { isParagraphTextOnPage } = await response.json()
if (quoteValue === "") {
quotestatus.setType("warning");
quotestatus.setLabel("The input cannot be left empty");
}
else if(!isParagraphTextOnPage) {
quotestatus.setType("error");
quotestatus.setLabel("The quote does not match");
}
else if (isParagraphTextOnPage) {
quotestatus.setType("success");
quotestatus.setLabel("Verified!");
stack.setItem( requotepanel );
}
}
function handleselectBack(){
stack.setItem( linkpanel );
$("#edit-wizard-link span").html("Edit Wizard");
$( 'body' ).css( 'background-color', '#f6f6f6' );
$( '#mw-head' ).css( 'background-color', '#f6f6f6' );
}
function handlequoteBack(){
stack.setItem( selectpanel );
selected = 1;
$("#edit-wizard-link span").html("Done selecting");
$( 'body' ).css( 'background-color', '#b8b9ba' );
$( '#mw-head' ).css( 'background-color', '#b8b9ba' );
}
function handlerequoteBack(){
stack.setItem( quotepanel );
selected = 0;
}
// Function to send request to the edit page
function editPage( info ) {
var api = new mw.Api();
api.postWithToken("csrf", {
action: 'edit',
title: info.title,
appendtext: info.text,
summary: info.summary
} ).then(function( data ) {
OO.ui.alert( 'Edit Request sent to talk page..!' );
} ).catch( function(code, data) {
console.log( api.getErrorMessage( data ).text());
} );
}
function handlePublish(){
const linkValue = linkinput.getValue();
const quoteValue = quoteinput.getValue();
const requoteValue = requoteinput.getValue();
const firstthree = quoteValue.split(' ').slice(0,3).join(' ');
const array = quoteValue.split(' ');
const len = array.length - 3;
const lastthree = quoteValue.split(' ').slice(len).join(' ');
if (requoteValue === "") {
requotestatus.$element.show();
requotestatus.setType("warning");
requotestatus.setLabel("The input cannot be left empty");
}
else{
requotestatus.$element.hide();
// API calls code goes here
editPage({
title: (new mw.Title(mw.config.get("wgPageName"))).getTalkPage().toText(),
text: '\n== Edit Request made by {{subst:REVISIONUSER}} ~~~~~ == \n' + '<br><b>Citation:</b> ' + `[${linkValue} ${website}]` + '<br><b>Section to Edit:</b> ' + selectionSection + '<br><b>Spot where to add the fact:</b> ' + selectValue + '<br><b>Quote:</b> ' + 'Quote starts here - ' + firstthree + '... ' + lastthree + '<br><b>Rephrased Quote:</b> ' + requoteValue + '<br> ~~~~',
summary: 'Edit Request to add a fact'
});
}
}
var node = mw.util.addPortletLink(
'p-views',
"#",
'Edit Wizard',
'edit-wizard-link',
'Edit Wizard',
"",
"#ca-history",
);
// A popup widget is instantiated
var popUp = new OO.ui.PopupWidget({
align: "forwards",
$floatableContainer: $(node),
$content: stack.$element,
padded: true,
popup: false,
width: 440,
height: 260,
head: true,
// autoClose: false,
hideCloseButton: false,
});
//If we are done selecting the text it automatically moves to the next panel
// $(node).on('click', doneSelecting);
$(node).on('click', function(e){
popUp.toggle();
e.preventDefault();
})
$(document.body).append(popUp.$element);
});
});
// </nowiki>
f8miqcy1dg6pmwo0gta9v5gyo45hk09
Talk:Blockchain
1
127009
519265
518548
2022-07-29T18:36:01Z
Ankit18gupta
52763
Edit Request to add a fact
wikitext
text/x-wiki
<b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 05:06, 22 June 2022 (UTC)<br><b>Source URL:</b> tgrtg<br><b>Spot where to add the fact:</b> d click<br><b>Quote:</b> ty45t<br><b>Rephrased Quote:</b> 5ty45<br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:00, 22 June 2022 (UTC)<br><b>Source URL:</b> btrhtyh<br><b>Spot where to add the fact:</b> You've followed a link to a page that doesn't exist yet. To create the page, start typing in the box below (see the help page for more info). If you are here by mistake, just click your browser's back button.
<br><b>Quote:</b> thge5tg5e<br><b>Rephrased Quote:</b> 5tg5g56<br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:06, 22 June 2022 (UTC)<br><b>Source URL:</b> t<br><b>Spot where to add the fact:</b> ct the te<br><b>Quote:</b> trg<br><b>Rephrased Quote:</b> gtw45<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:07, 22 June 2022 (UTC)<br><b>Source URL:</b> etgr<br><b>Spot where to add the fact:</b> Please select the text from the article and click Next button<br><b>Quote:</b> rtg<br><b>Rephrased Quote:</b> g<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:09, 22 June 2022 (UTC)<br><b>Source URL:</b> etrg<br><b>Spot where to add the fact:</b> Please <br><b>Quote:</b> t5g5<br><b>Rephrased Quote:</b> 5y54<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 17:28, 1 July 2022 (UTC)<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> her work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with.<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party.<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party. One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are clos<br><br>==<b>Edit Request made by</b> ~~ ~~==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> ed, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampere<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of <br><br>== Edit Request made by 17:41, 1 July 2022 (UTC) ==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> the size had grown to almost 30 GB, and from January 2016 to January 2017, the bitcoin blockchain grew from 50 GB to 100 GB in size. The ledger size had exceeded 200 GB by early 2020.[12]
The words block and chain were used separately i<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of <br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br><br>== Edit Request made on 17:50, 1 July 2022 (UTC) ==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> 91 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency b<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br>== Edit Request made on 18:00, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> d in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorpora<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br>== Edit Request made on 19:04, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> r work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br>
== Edit Request made on 19:06, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> tained, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a syst<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency by allowing several document certificates to be collected into <br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compiled<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) by ~~ ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> orm a chain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data becau<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:23, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> n of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent b<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:23, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> ain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data becaus<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:46, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer inc<br><b>Quote:</b> f a computer network. As a database, a blockchain stores information electro<br><b>Rephrased Quote:</b> f a computer network. As a database, a blockchain stores information electro<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:41, 11 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> es are represented by leafs). The timestamp proves that the transaction data existed when the block was published to get into its hash. As blocks each contain information about the block previous to it, they form a chain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks.
Blockchains are typically managed by a peer-to-peer network for use as a publicly distributed ledger, where nodes collectively adhere to a protocol to communicate and validate new blocks. Although blockchain records ar<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized reco<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized reco<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:41, 11 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> ained, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency by allowing several document certificates to be collected into one block.[2][10] Under their company Surety, their document certificate hashes have been published in The New York Times every week since 1995.[4]
The first decentralized blockchain was conceptualized by a person (o<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the f<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the f<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 04:27, 24 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.facebook.com/watch/?v=966431404225278&extid=NS-UNK-UNK-UNK-IOS_GK0T-GK1C&ref=sharing undefined]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> the block was published to get into its hash. As blocks each contain information about the block previous to it, they form a chain,<br><b>Quote:</b> Listen to this<br><b>Rephrased Quote:</b> kjdbhd hhdyud igdkyb yugdkyvhv dywgdyg ygdyuegd<br>
== Edit Request made by Ankit18gupta 18:36, 29 July 2022 (UTC) ==
<br><b>Citation:</b> [https://builtin.com/blockchain What Is Blockchain Technology? How Does It Work? | Built In]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> Therefore, blockchains are resistant to modification of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks<br><b>Quote:</b> Quote starts here - A simple analogy... copied or transferred.<br><b>Rephrased Quote:</b> A simple analogy for how blockchain technology operates can be compared to how a Google Docs document works. When you create a Google Doc and share it with a group of people, the document is simply distributed instead of copied or transferred.<br> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 18:36, 29 July 2022 (UTC)
razw95rjc8f5dkx8rwz3wiauhprfy8u
519269
519265
2022-07-29T19:33:29Z
Ankit18gupta
52763
Edit Request to add a fact
wikitext
text/x-wiki
<b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 05:06, 22 June 2022 (UTC)<br><b>Source URL:</b> tgrtg<br><b>Spot where to add the fact:</b> d click<br><b>Quote:</b> ty45t<br><b>Rephrased Quote:</b> 5ty45<br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:00, 22 June 2022 (UTC)<br><b>Source URL:</b> btrhtyh<br><b>Spot where to add the fact:</b> You've followed a link to a page that doesn't exist yet. To create the page, start typing in the box below (see the help page for more info). If you are here by mistake, just click your browser's back button.
<br><b>Quote:</b> thge5tg5e<br><b>Rephrased Quote:</b> 5tg5g56<br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:06, 22 June 2022 (UTC)<br><b>Source URL:</b> t<br><b>Spot where to add the fact:</b> ct the te<br><b>Quote:</b> trg<br><b>Rephrased Quote:</b> gtw45<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:07, 22 June 2022 (UTC)<br><b>Source URL:</b> etgr<br><b>Spot where to add the fact:</b> Please select the text from the article and click Next button<br><b>Quote:</b> rtg<br><b>Rephrased Quote:</b> g<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:09, 22 June 2022 (UTC)<br><b>Source URL:</b> etrg<br><b>Spot where to add the fact:</b> Please <br><b>Quote:</b> t5g5<br><b>Rephrased Quote:</b> 5y54<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 17:28, 1 July 2022 (UTC)<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> her work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with.<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party.<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party. One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are clos<br><br>==<b>Edit Request made by</b> ~~ ~~==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> ed, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampere<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of <br><br>== Edit Request made by 17:41, 1 July 2022 (UTC) ==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> the size had grown to almost 30 GB, and from January 2016 to January 2017, the bitcoin blockchain grew from 50 GB to 100 GB in size. The ledger size had exceeded 200 GB by early 2020.[12]
The words block and chain were used separately i<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of <br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br><br>== Edit Request made on 17:50, 1 July 2022 (UTC) ==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> 91 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency b<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br>== Edit Request made on 18:00, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> d in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorpora<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br>== Edit Request made on 19:04, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> r work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br>
== Edit Request made on 19:06, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> tained, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a syst<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency by allowing several document certificates to be collected into <br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compiled<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) by ~~ ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> orm a chain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data becau<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:23, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> n of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent b<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:23, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> ain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data becaus<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:46, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer inc<br><b>Quote:</b> f a computer network. As a database, a blockchain stores information electro<br><b>Rephrased Quote:</b> f a computer network. As a database, a blockchain stores information electro<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:41, 11 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> es are represented by leafs). The timestamp proves that the transaction data existed when the block was published to get into its hash. As blocks each contain information about the block previous to it, they form a chain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks.
Blockchains are typically managed by a peer-to-peer network for use as a publicly distributed ledger, where nodes collectively adhere to a protocol to communicate and validate new blocks. Although blockchain records ar<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized reco<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized reco<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:41, 11 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> ained, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency by allowing several document certificates to be collected into one block.[2][10] Under their company Surety, their document certificate hashes have been published in The New York Times every week since 1995.[4]
The first decentralized blockchain was conceptualized by a person (o<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the f<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the f<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 04:27, 24 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.facebook.com/watch/?v=966431404225278&extid=NS-UNK-UNK-UNK-IOS_GK0T-GK1C&ref=sharing undefined]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> the block was published to get into its hash. As blocks each contain information about the block previous to it, they form a chain,<br><b>Quote:</b> Listen to this<br><b>Rephrased Quote:</b> kjdbhd hhdyud igdkyb yugdkyvhv dywgdyg ygdyuegd<br>
== Edit Request made by Ankit18gupta 18:36, 29 July 2022 (UTC) ==
<br><b>Citation:</b> [https://builtin.com/blockchain What Is Blockchain Technology? How Does It Work? | Built In]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> Therefore, blockchains are resistant to modification of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks<br><b>Quote:</b> Quote starts here - A simple analogy... copied or transferred.<br><b>Rephrased Quote:</b> A simple analogy for how blockchain technology operates can be compared to how a Google Docs document works. When you create a Google Doc and share it with a group of people, the document is simply distributed instead of copied or transferred.<br> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 18:36, 29 July 2022 (UTC)
== Edit Request made by Ankit18gupta 19:33, 29 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Blockchain Explained]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> stant to modification of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks.<br><b>Quote:</b> Quote starts here - A blockchain is... trusted third party.<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party.<br> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:33, 29 July 2022 (UTC)
30cubtqe1k0hpnuchg4y203r565quo1
519270
519269
2022-07-29T19:33:50Z
Ankit18gupta
52763
Edit Request to add a fact
wikitext
text/x-wiki
<b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 05:06, 22 June 2022 (UTC)<br><b>Source URL:</b> tgrtg<br><b>Spot where to add the fact:</b> d click<br><b>Quote:</b> ty45t<br><b>Rephrased Quote:</b> 5ty45<br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:00, 22 June 2022 (UTC)<br><b>Source URL:</b> btrhtyh<br><b>Spot where to add the fact:</b> You've followed a link to a page that doesn't exist yet. To create the page, start typing in the box below (see the help page for more info). If you are here by mistake, just click your browser's back button.
<br><b>Quote:</b> thge5tg5e<br><b>Rephrased Quote:</b> 5tg5g56<br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:06, 22 June 2022 (UTC)<br><b>Source URL:</b> t<br><b>Spot where to add the fact:</b> ct the te<br><b>Quote:</b> trg<br><b>Rephrased Quote:</b> gtw45<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:07, 22 June 2022 (UTC)<br><b>Source URL:</b> etgr<br><b>Spot where to add the fact:</b> Please select the text from the article and click Next button<br><b>Quote:</b> rtg<br><b>Rephrased Quote:</b> g<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:09, 22 June 2022 (UTC)<br><b>Source URL:</b> etrg<br><b>Spot where to add the fact:</b> Please <br><b>Quote:</b> t5g5<br><b>Rephrased Quote:</b> 5y54<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 17:28, 1 July 2022 (UTC)<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> her work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with.<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party.<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party. One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are clos<br><br>==<b>Edit Request made by</b> ~~ ~~==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> ed, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampere<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of <br><br>== Edit Request made by 17:41, 1 July 2022 (UTC) ==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> the size had grown to almost 30 GB, and from January 2016 to January 2017, the bitcoin blockchain grew from 50 GB to 100 GB in size. The ledger size had exceeded 200 GB by early 2020.[12]
The words block and chain were used separately i<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of <br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br><br>== Edit Request made on 17:50, 1 July 2022 (UTC) ==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> 91 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency b<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br>== Edit Request made on 18:00, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> d in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorpora<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br>== Edit Request made on 19:04, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> r work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br>
== Edit Request made on 19:06, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> tained, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a syst<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency by allowing several document certificates to be collected into <br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compiled<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) by ~~ ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> orm a chain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data becau<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:23, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> n of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent b<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:23, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> ain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data becaus<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:46, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer inc<br><b>Quote:</b> f a computer network. As a database, a blockchain stores information electro<br><b>Rephrased Quote:</b> f a computer network. As a database, a blockchain stores information electro<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:41, 11 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> es are represented by leafs). The timestamp proves that the transaction data existed when the block was published to get into its hash. As blocks each contain information about the block previous to it, they form a chain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks.
Blockchains are typically managed by a peer-to-peer network for use as a publicly distributed ledger, where nodes collectively adhere to a protocol to communicate and validate new blocks. Although blockchain records ar<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized reco<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized reco<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:41, 11 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> ained, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency by allowing several document certificates to be collected into one block.[2][10] Under their company Surety, their document certificate hashes have been published in The New York Times every week since 1995.[4]
The first decentralized blockchain was conceptualized by a person (o<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the f<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the f<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 04:27, 24 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.facebook.com/watch/?v=966431404225278&extid=NS-UNK-UNK-UNK-IOS_GK0T-GK1C&ref=sharing undefined]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> the block was published to get into its hash. As blocks each contain information about the block previous to it, they form a chain,<br><b>Quote:</b> Listen to this<br><b>Rephrased Quote:</b> kjdbhd hhdyud igdkyb yugdkyvhv dywgdyg ygdyuegd<br>
== Edit Request made by Ankit18gupta 18:36, 29 July 2022 (UTC) ==
<br><b>Citation:</b> [https://builtin.com/blockchain What Is Blockchain Technology? How Does It Work? | Built In]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> Therefore, blockchains are resistant to modification of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks<br><b>Quote:</b> Quote starts here - A simple analogy... copied or transferred.<br><b>Rephrased Quote:</b> A simple analogy for how blockchain technology operates can be compared to how a Google Docs document works. When you create a Google Doc and share it with a group of people, the document is simply distributed instead of copied or transferred.<br> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 18:36, 29 July 2022 (UTC)
== Edit Request made by Ankit18gupta 19:33, 29 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Blockchain Explained]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> stant to modification of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks.<br><b>Quote:</b> Quote starts here - A blockchain is... trusted third party.<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party.<br> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:33, 29 July 2022 (UTC)
== Edit Request made by Ankit18gupta 19:33, 29 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Blockchain Explained]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> its efficiency by allowing several document certificates to be collected into one block.[2][10] Under their company Surety, their document certificate hashes h<br><b>Quote:</b> Quote starts here - A blockchain is... trusted third party.<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party.<br> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:33, 29 July 2022 (UTC)
dcao1eugefisn0mx38nwzj0npoabyjw
519272
519270
2022-07-29T20:14:25Z
Ankit18gupta
52763
Edit Request to add a fact
wikitext
text/x-wiki
<b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 05:06, 22 June 2022 (UTC)<br><b>Source URL:</b> tgrtg<br><b>Spot where to add the fact:</b> d click<br><b>Quote:</b> ty45t<br><b>Rephrased Quote:</b> 5ty45<br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:00, 22 June 2022 (UTC)<br><b>Source URL:</b> btrhtyh<br><b>Spot where to add the fact:</b> You've followed a link to a page that doesn't exist yet. To create the page, start typing in the box below (see the help page for more info). If you are here by mistake, just click your browser's back button.
<br><b>Quote:</b> thge5tg5e<br><b>Rephrased Quote:</b> 5tg5g56<br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:06, 22 June 2022 (UTC)<br><b>Source URL:</b> t<br><b>Spot where to add the fact:</b> ct the te<br><b>Quote:</b> trg<br><b>Rephrased Quote:</b> gtw45<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:07, 22 June 2022 (UTC)<br><b>Source URL:</b> etgr<br><b>Spot where to add the fact:</b> Please select the text from the article and click Next button<br><b>Quote:</b> rtg<br><b>Rephrased Quote:</b> g<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 07:09, 22 June 2022 (UTC)<br><b>Source URL:</b> etrg<br><b>Spot where to add the fact:</b> Please <br><b>Quote:</b> t5g5<br><b>Rephrased Quote:</b> 5y54<br><br><b>Edit Request made by</b> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 17:28, 1 July 2022 (UTC)<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> her work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with.<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party.<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party. One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are clos<br><br>==<b>Edit Request made by</b> ~~ ~~==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> ed, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampere<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of <br><br>== Edit Request made by 17:41, 1 July 2022 (UTC) ==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> the size had grown to almost 30 GB, and from January 2016 to January 2017, the bitcoin blockchain grew from 50 GB to 100 GB in size. The ledger size had exceeded 200 GB by early 2020.[12]
The words block and chain were used separately i<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of <br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br><br>== Edit Request made on 17:50, 1 July 2022 (UTC) ==<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> 91 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency b<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br>== Edit Request made on 18:00, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> d in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorpora<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><br>== Edit Request made on 19:04, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> r work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br>
== Edit Request made on 19:06, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> tained, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a syst<br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency by allowing several document certificates to be collected into <br><b>Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compil<br><b>Rephrased Quote:</b> One key difference between a typical database and a blockchain is how the data is structured. A blockchain collects information together in groups, known as blocks, that hold sets of information. Blocks have certain storage capacities and, when filled, are closed and linked to the previously filled block, forming a chain of data known as the blockchain. All new information that follows that freshly added block is compiled<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) by ~~ ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> orm a chain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data becau<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made on 19:09, 1 July 2022 (UTC) by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:23, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> n of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent b<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:23, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> ain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data becaus<br><b>Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br><b>Rephrased Quote:</b> odes of a computer network. As a database, a blockchain stores information electronically in d<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:46, 1 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer inc<br><b>Quote:</b> f a computer network. As a database, a blockchain stores information electro<br><b>Rephrased Quote:</b> f a computer network. As a database, a blockchain stores information electro<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:41, 11 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> es are represented by leafs). The timestamp proves that the transaction data existed when the block was published to get into its hash. As blocks each contain information about the block previous to it, they form a chain, with each additional block reinforcing the ones before it. Therefore, blockchains are resistant to modification of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks.
Blockchains are typically managed by a peer-to-peer network for use as a publicly distributed ledger, where nodes collectively adhere to a protocol to communicate and validate new blocks. Although blockchain records ar<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized reco<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized reco<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 06:41, 11 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Investopedia]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> ained, and Trusted by Mutually Suspicious Groups."[8] Further work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[2][9] They wanted to implement a system wherein document timestamps could not be tampered with. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its efficiency by allowing several document certificates to be collected into one block.[2][10] Under their company Surety, their document certificate hashes have been published in The New York Times every week since 1995.[4]
The first decentralized blockchain was conceptualized by a person (o<br><b>Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the f<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the f<br>
== Edit Request made by [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 04:27, 24 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.facebook.com/watch/?v=966431404225278&extid=NS-UNK-UNK-UNK-IOS_GK0T-GK1C&ref=sharing undefined]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> the block was published to get into its hash. As blocks each contain information about the block previous to it, they form a chain,<br><b>Quote:</b> Listen to this<br><b>Rephrased Quote:</b> kjdbhd hhdyud igdkyb yugdkyvhv dywgdyg ygdyuegd<br>
== Edit Request made by Ankit18gupta 18:36, 29 July 2022 (UTC) ==
<br><b>Citation:</b> [https://builtin.com/blockchain What Is Blockchain Technology? How Does It Work? | Built In]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> Therefore, blockchains are resistant to modification of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks<br><b>Quote:</b> Quote starts here - A simple analogy... copied or transferred.<br><b>Rephrased Quote:</b> A simple analogy for how blockchain technology operates can be compared to how a Google Docs document works. When you create a Google Doc and share it with a group of people, the document is simply distributed instead of copied or transferred.<br> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 18:36, 29 July 2022 (UTC)
== Edit Request made by Ankit18gupta 19:33, 29 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Blockchain Explained]<br><b>Section to Edit:</b> <br><b>Spot where to add the fact:</b> stant to modification of their data because once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks.<br><b>Quote:</b> Quote starts here - A blockchain is... trusted third party.<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party.<br> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:33, 29 July 2022 (UTC)
== Edit Request made by Ankit18gupta 19:33, 29 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Blockchain Explained]<br><b>Section to Edit:</b> History<br><b>Spot where to add the fact:</b> its efficiency by allowing several document certificates to be collected into one block.[2][10] Under their company Surety, their document certificate hashes h<br><b>Quote:</b> Quote starts here - A blockchain is... trusted third party.<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party.<br> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 19:33, 29 July 2022 (UTC)
== Edit Request made by Ankit18gupta 20:14, 29 July 2022 (UTC) ==
<br><b>Citation:</b> [https://www.investopedia.com/terms/b/blockchain.asp Blockchain Explained]<br><b>Section to Edit:</b> Uses<br><b>Spot where to add the fact:</b> Blockchain technology has been used for tracking the origins of gemstones and other precious commodities. In 2016, The Wall Street Journal reported that the blockchain technology company Everledger was partnering with IBM's blockchain-based tracking service to trace the origin of diamonds to ensure that they were ethically mined.[95] As of 2019, the Diamond Trading Company (DTC) has been involved in building a diamond trading supply chain product called Tracr.[96]<br><b>Quote:</b> Quote starts here - A blockchain is... trusted third party.<br><b>Rephrased Quote:</b> A blockchain is a distributed database or ledger that is shared among the nodes of a computer network. As a database, a blockchain stores information electronically in digital format. Blockchains are best known for their crucial role in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. The innovation with a blockchain is that it guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party.<br> [[User:Ankit18gupta|Ankit18gupta]] ([[User talk:Ankit18gupta|talk]]) 20:14, 29 July 2022 (UTC)
n2uham4n6v76gka0h7on03dt1r0l4lb
User:PhantomTech/sandbox
2
127427
519280
518415
2022-07-30T08:13:25Z
PhantomTech
27808
wikitext
text/x-wiki
test
test
5nqoj84v2w4p4nsakd1nx8u65eow280
User:John Vandenberg/createonly/1659111755.017861
2
127541
519253
2022-07-29T16:22:44Z
Pywikibot-test
23124
Pywikibot 7.6.0.dev2
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Topic:X089v55oni1y1tbh
2600
127542
519254
2022-07-29T16:22:54Z
Flow talk page manager
26836
/* This page has been converted into a Structured Discussions board */
flow-board
application/json
{"flow-workflow":"x089v55oni1y1tbh"}
bnfct57ac4u7zoc5u8xq6e2jbsge8ou
User:PotsdamLamb/common.js
2
127543
519274
2022-07-29T22:36:41Z
PotsdamLamb
50452
Created page with "mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Ankit18gupta/Editwizard.js&action=raw&ctype=text/javascript');"
javascript
text/javascript
mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Ankit18gupta/Editwizard.js&action=raw&ctype=text/javascript');
89fjvjfgv82oymkawpssdvppus19g6w