Knowledge (XXG)

User:SDZeroBot

Source ๐Ÿ“

152: 107: 188: 24: 229: 1225: 1339:
Lesser errors: Session loss often occurs using cookie-based authentication methods. Good bot frameworks should handle these automatically by logging in again on getting the assertbotfailed or assertuserfailed API response, but if yours doesn't, you can avoid these problems just by using OAuth. OAuth
1208:
Automate delsort taggings using some custom machine learning model. The model can be trained on basis of delsort tagging done so far by humans. Difficulty here is that unbiased training of the model requires access to content of deleted articles as well. Simply training it on articles that were kept
1335:
Faster: BotPasswords requires at least 3 API calls just to get the bot off the block: one to fetch a login token, another to actually log in, and usually another one to fetch editing tokens. Since OAuth doesn't require any API call to begin the authentication, you just need one API call โ€“ to fetch
1318:
If SDZeroBot is unable to save an edit because it is introducing a spam-blacklisted link (which of course isn't the bot's fault since it likely just picked up the text to be added from another place), it identifies the problematic link from the API response, and removes the protocol ("http:" or
1124:, as well as on the /data/project/sdzerobot directory on Toolforge. Even the logs (*.out and *.err files) are publicly visible, which is by default not the case on Toolforge. The jobs.yml file used to schedule the tasks can also be viewed there. 1082:
Good question. Excerpts of articles used on many of SDZeroBot's classification pages are generated using a combination of regex and some slightly more formal parsing methods. The Node.js source code used can be seen
1309:
A good combination of failure monitoring techniques is essential for operating bots that reliably perform a number of tasks without requiring you to spend time and energy on making sure everything is running.
1343:
No need to cache cookies: If your bot task is too frequent (say every 10 minutes), you're likely to have a high login rate unless you cache the login cookies and use them across bot runs. High login rates are
79: 1379: 690: 1280:
The only kinds of errors the above wouldn't handle are the ones that occur even before the javascript code starts executing (such as the file accidentally losing its executable permission) or
1374: 1295:
In addition, for the report pages, this user page lists them above along with their last updated timestamps. Along with the expected frequency of the updates, it is fed into a
932: 908: 878: 1323:
ends up looking like , but it is closest to the original while allowing the edit to go through. Besides, the link was blacklisted anyway so probably shouldn't be clickable.
1044: 1021: 990: 854: 830: 1194:
Consider creating a Toolforge-hosted web UI for AfD sorting list, so that more columns can be added (whose visibility can be toggled using javascript), based on ideas in
977: 1181: 274: 1187:
If that also doesn't give desired level of accuracy (esp. for non-bio articles), don't actually add the shortdescs to the article, but show it on the sortlists.
1270: 141:
Administrators: If this bot needs to be blocked due to a malfunction, please remember to disable autoblocks so that other Toolforge bots are not affected.
1195: 1146: 716: 938: 862:: Keeps track of activity of fully automatic bots and reports the ones that are not working. Optionally also notifies the respective operators. 642: 1030: 133: 498: 1364: 859: 1152:
Split the biography list by professions - this can be done just by looking at the other topics the bios have been classified with.
1273:
that traps errors and formats it as an email sent to the tool account, which lands in my inbox. For good measure, there's also a
666: 450: 1289: 546: 1319:"https:") from the link, and then attempts to save the page again. This does mean that a link that was supposed to look like 1010: 1369: 1103: 805: 802: 23: 399: 238:
for shutting off specific bot tasks. If the bot appears to be malfunctioning across multiple tasks, it should be blocked.
1237: 67: 63: 1248: 835: 618: 570: 351: 1106:, but it was all too messy and integrated with a lot of other popups code that I couldn't get it to work standalone. 187: 982:
Consolidate stub tags on page where possible (replace X-stub and Y-stub with X-Y-stub or Y-X-stub if either exists)
594: 375: 326: 914: 733: 730: 423: 779: 776: 31: 886: 474: 298: 75: 925: 922: 1241: 522: 792: 789: 114: 71: 235: 228: 1296: 1215:
Probably using TemplateStyles, improve the appearance of the tables on very small and very wide screens.
1155:
For the STEM lists, make sections for core articles, STEM biographies, STEM media, STEM companies, ... (
1084: 1053: 151: 1274: 118: 1202: 1133: 1060: 1205:
of AfDs using ORES. Works only for select delsort lists which have a corresponding ORES topic, or
1088: 1255:
Create articlesearch tool โ€“ shows excerpts of articles from CirrusSearch queries โ€“ use ReactJS
161: 1174: 429: 35: 1156: 54: 1303: 995: 1180:
Explore use of machine learning for this, failing which other methods such as Trialpears'
291: 288: 106: 1109:
All excerpts are short enough, so that attribution and copyright concerns are avoided.
950: 947: 901: 898: 847: 844: 838:
Notify users of AfD nominations of articles to which they've significantly contributed
587: 584: 563: 560: 539: 536: 515: 512: 491: 488: 1358: 1281: 871: 868: 1234:
Don't duplicate nomination text on AFD sorting report for multi-article nominations.
467: 464: 443: 440: 1096: 709: 706: 683: 680: 416: 413: 1091:. This excerpt generator is also available as a webservice hosted on Toolforge at 659: 656: 635: 632: 368: 365: 611: 608: 392: 389: 344: 341: 319: 316: 766: 763: 206: 50: 129: 214: 210: 70:
edits that would be extremely tedious to do manually, in accordance with the
1306:
which although maintained by SDZeroBot, is not used for monitoring itself.
1121: 218: 1331:
Always use OAuth instead of BotPasswords. There are all these advantages:
1138:
If you're interested in helping out with these tasks, please contact me.
380:
Classification of articles nominated for deletion at AfD by ORES topics
196: 125: 42: 937:
Raise edit requests to keep gadgets in sync with upstream sources per
87:
Administrators: if this bot is malfunctioning or causing harm, please
200: 74:. The bot is approved and currently active – the relevant 1095:
with a horrible bare minimum UI, but a better API endpoint. See the
356:
Classification of articles proposed for PROD deletion by ORES topics
1269:
For each SDZeroBot task, most of the code is in an async function
1166:
Automatically produce short descriptions for articles and drafts.
1149:(1500+ pages), use machine learning to section this list by sport. 305: 304:
Classification of pending AfC submissions by topics predicted by
1120:
source code that drives SDZeroBot is publicly available via the
623:
Annotated listing of articles for which peer review is requested
503:
Lists recently declined AFC drafts with excerpts and other data
1169:
Drafts mostly don't have short descriptions at all. They'd be
223: 101: 18: 1345: 1092: 1073:
Tasks which edit only in the userspace don't require a BRFA.
186: 1380:
Knowledge (XXG) bots with JavaScript source code published
647:
Lists pending AfC submissions with excerpts and other data
1299:
which prints the timestamp in bold red if it's delayed.
479:
Records excerpts of drafts that have been deleted per G13
1348:. Again, with OAuth, you don't have to worry about this. 1244:
figure out ways to better identify bad and good drafts?
671:
Annotated listing of unreferenced BLPs, for Women in Red
599:
Classifies articles awaiting GA review using ORES topics
575:
Lists G13-eligible drafts with descriptions and excerpts
551:
Classifies soon-to-be-G13-eligible drafts by ORES topics
428:
Tracks the status of articles proposed for deletion per
279:
List of user scripts by number of users and active users
998:
geographical stub articles with more specific stub tags
88: 892:: Updates tables with result of specified SQL queries. 1320: 1218:
Create unified lists for PROD and AFD which include
332:
Classification of unreviewed articles by ORES topics
1375:
Knowledge (XXG) bots running on Wikimedia Toolforge
691:WP:List of Wikipedians by good article nominations 527:Lists drafts that would be-G13-eligible in a week 1212:Big one: identify promising AFC drafts using ML. 1177:. Also useful for the AfD, NPP, and PROD lists. 8: 1247:integrate unreliable source detection using 1102:I initially considered using the code from 455:Tracks conversions of articles to redirects 253: 138: 717:User:SDZeroBot/DYK nomination counts.json 404:Tracks articles being moved to draftspace 16:Knowledge (XXG) editing bot run by SD0001 1142:Split certain sortlists into subtopics. 1093:https://summary-generator.toolforge.org/ 1036:to drafts that were moved from mainspace 962: 812: 745: 1275:process-level uncaughtException handler 1013:identifying cycles in the category tree 939:User:SDZeroBot/Gadgets-sync-config.json 643:User:SDZeroBot/Pending AfC submissions 1078:How do you generate article excerpts? 721:List of users by most DYK nominations 275:WP:User scripts/Most imported scripts 7: 1209:at AfD would not give good results. 1351:More secure: OAuth is more secure. 1284:, which are both handled by using 1222:deletion rationale and lead text. 499:User:SDZeroBot/Recent AfC declines 217:. The source code is available on 14: 1260:Tips and tricks for bot operators 205:bot framework, also developed by 1223: 1134:User:SD0001/Scripts ยง To-do 667:User:SDZeroBot/Unreferenced BLPs 451:User:SDZeroBot/Redirectify Watch 227: 150: 105: 22: 547:User:SDZeroBot/G13 soon sorting 1011:User:SDZeroBot/Category cycles 213:, while the newer ones are in 62:It is used to make repetitive 1: 1346:frowned upon by server admins 400:User:SDZeroBot/Draftify Watch 1238:User:SDZeroBot/Declined AFCs 209:. Most tasks are written in 1365:Active Knowledge (XXG) bots 1249:user:headbomb/unreliable.js 1031:Drafts moved from mainspace 619:User:SDZeroBot/Peer reviews 571:User:SDZeroBot/G13 eligible 352:User:SDZeroBot/PROD sorting 1396: 1314:Handling blacklisted links 1131: 595:User:SDZeroBot/GAN sorting 376:User:SDZeroBot/AfD sorting 327:User:SDZeroBot/NPP sorting 965: 915:User:SDZeroBot/Purge list 913:Purges pages linked from 815: 751: 695:List of users by most GAs 424:User:SDZeroBot/PROD Watch 78:(s) or tasks can be seen 1370:All Knowledge (XXG) bots 1290:Toolforge Jobs framework 1099:for usage instructions. 475:User:SDZeroBot/G13 Watch 1182:bio shortdesc generator 1087:, which also relies on 523:User:SDZeroBot/G13 soon 742:Other continuous tasks 236:User:SDZeroBot/Shutoff 191: 1009:Created the lists at 190: 1340:tokens don't expire. 1089:mwn's wikitext class 959:One-time / on-demand 860:Bot activity monitor 76:request for approval 1265:Monitoring failures 748: 119:Wikimedia Toolforge 1286:--emails onfailure 747:Internal tracking 746: 195:SDZeroBot runs on 192: 1122:GitHub repository 1074: 1070: 1069: 956: 955: 811: 810: 739: 738: 727:19 September 2024 702:18 September 2024 677:19 September 2024 653:19 September 2024 629:17 September 2024 605:19 September 2024 581:19 September 2024 557:16 September 2024 533:19 September 2024 509:19 September 2024 485:19 September 2024 461:19 September 2024 437:18 September 2024 410:17 September 2024 386:19 September 2024 362:19 September 2024 338:19 September 2024 313:19 September 2024 285:15 September 2024 242: 241: 147: 146: 143: 137: 100: 99: 94: 1387: 1287: 1230: 1227: 1226: 1072: 1058: 1052: 1035: 1029: 963: 891: 885: 813: 749: 703: 254: 231: 224: 181: 177: 171: 167: 165: 154: 123: 109: 102: 93: 84: 61: 48: 40: 26: 19: 1395: 1394: 1390: 1389: 1388: 1386: 1385: 1384: 1355: 1354: 1329: 1316: 1285: 1267: 1262: 1228: 1224: 1203:delsort tagging 1136: 1130: 1115: 1080: 1056: 1050: 1033: 1027: 961: 889: 887:Database report 883: 744: 701: 252: 247: 193: 184: 183: 179: 178: 176:in the category 175: 169: 168: 163: 162: 155: 139: 124:It runs on the 85: 83: 59: 46: 38: 17: 12: 11: 5: 1393: 1391: 1383: 1382: 1377: 1372: 1367: 1357: 1356: 1353: 1352: 1349: 1341: 1337: 1328: 1325: 1315: 1312: 1266: 1263: 1261: 1258: 1257: 1256: 1253: 1252: 1251: 1235: 1232: 1216: 1213: 1210: 1206: 1199: 1191: 1190: 1189: 1188: 1185: 1178: 1163: 1162: 1161: 1160: 1153: 1150: 1129: 1126: 1114: 1111: 1079: 1076: 1068: 1067: 1064: 1061:set categories 1047: 1041: 1040: 1037: 1024: 1018: 1017: 1014: 1007: 1003: 1002: 999: 993: 987: 986: 983: 980: 974: 973: 970: 967: 960: 957: 954: 953: 945: 942: 935: 929: 928: 920: 917: 911: 905: 904: 896: 893: 881: 875: 874: 866: 863: 857: 851: 850: 842: 839: 833: 827: 826: 823: 820: 817: 809: 808: 800: 796: 795: 787: 783: 782: 774: 770: 769: 761: 757: 756: 753: 743: 740: 737: 736: 728: 725: 722: 719: 713: 712: 704: 699: 696: 693: 687: 686: 678: 675: 672: 669: 663: 662: 654: 651: 648: 645: 639: 638: 630: 627: 624: 621: 615: 614: 606: 603: 600: 597: 591: 590: 582: 579: 576: 573: 567: 566: 558: 555: 552: 549: 543: 542: 534: 531: 528: 525: 519: 518: 510: 507: 504: 501: 495: 494: 486: 483: 480: 477: 471: 470: 462: 459: 456: 453: 447: 446: 438: 435: 432: 426: 420: 419: 411: 408: 405: 402: 396: 395: 387: 384: 381: 378: 372: 371: 363: 360: 357: 354: 348: 347: 339: 336: 335:Every 12 hours 333: 330: 323: 322: 314: 311: 308: 302: 299:WP:AfC sorting 295: 294: 286: 283: 280: 277: 271: 270: 267: 264: 261: 258: 251: 248: 246: 243: 240: 239: 232: 185: 156: 149: 148: 145: 144: 128:tool account ( 110: 98: 97: 95: 68:semi-automated 27: 15: 13: 10: 9: 6: 4: 3: 2: 1392: 1381: 1378: 1376: 1373: 1371: 1368: 1366: 1363: 1362: 1360: 1350: 1347: 1342: 1338: 1334: 1333: 1332: 1326: 1324: 1322: 1313: 1311: 1307: 1305: 1302:There's also 1300: 1298: 1293: 1291: 1283: 1278: 1276: 1272: 1264: 1259: 1254: 1250: 1246: 1245: 1243: 1239: 1236: 1233: 1221: 1217: 1214: 1211: 1207: 1204: 1200: 1197: 1193: 1192: 1186: 1183: 1179: 1176: 1172: 1168: 1167: 1165: 1164: 1158: 1154: 1151: 1148: 1144: 1143: 1141: 1140: 1139: 1135: 1127: 1125: 1123: 1119: 1112: 1110: 1107: 1105: 1100: 1098: 1097:GitHub README 1094: 1090: 1086: 1077: 1075: 1065: 1062: 1055: 1048: 1046: 1043: 1042: 1038: 1032: 1025: 1023: 1020: 1019: 1015: 1012: 1008: 1005: 1004: 1000: 997: 994: 992: 989: 988: 984: 981: 979: 976: 975: 971: 968: 964: 958: 952: 949: 946: 943: 940: 936: 934: 931: 930: 927: 924: 921: 918: 916: 912: 910: 907: 906: 903: 900: 897: 894: 888: 882: 880: 877: 876: 873: 870: 867: 864: 861: 858: 856: 853: 852: 849: 846: 843: 840: 837: 834: 832: 829: 828: 824: 821: 818: 814: 807: 804: 801: 798: 797: 794: 791: 788: 785: 784: 781: 778: 775: 772: 771: 768: 765: 762: 759: 758: 754: 750: 741: 735: 732: 729: 726: 723: 720: 718: 715: 714: 711: 708: 705: 700: 697: 694: 692: 689: 688: 685: 682: 679: 676: 673: 670: 668: 665: 664: 661: 658: 655: 652: 649: 646: 644: 641: 640: 637: 634: 631: 628: 625: 622: 620: 617: 616: 613: 610: 607: 604: 601: 598: 596: 593: 592: 589: 586: 583: 580: 577: 574: 572: 569: 568: 565: 562: 559: 556: 553: 550: 548: 545: 544: 541: 538: 535: 532: 529: 526: 524: 521: 520: 517: 514: 511: 508: 505: 502: 500: 497: 496: 493: 490: 487: 484: 481: 478: 476: 473: 472: 469: 466: 463: 460: 457: 454: 452: 449: 448: 445: 442: 439: 436: 433: 431: 427: 425: 422: 421: 418: 415: 412: 409: 406: 403: 401: 398: 397: 394: 391: 388: 385: 383:Every 4 hours 382: 379: 377: 374: 373: 370: 367: 364: 361: 359:Every 4 hours 358: 355: 353: 350: 349: 346: 343: 340: 337: 334: 331: 328: 325: 324: 321: 318: 315: 312: 310:Every 8 hours 309: 307: 303: 300: 297: 296: 293: 290: 287: 284: 282:Every 2 weeks 281: 278: 276: 273: 272: 268: 265: 262: 259: 256: 255: 249: 244: 237: 233: 230: 226: 225: 222: 220: 216: 212: 208: 204: 203: 199:and uses the 198: 189: 182: 173: 172: 159: 153: 142: 135: 131: 127: 122: 120: 116: 111: 108: 104: 103: 96: 92: 90: 81: 77: 73: 69: 65: 58: 56: 52: 44: 37: 33: 28: 25: 21: 20: 1330: 1317: 1308: 1301: 1294: 1288:while using 1279: 1271:with a catch 1268: 1219: 1170: 1137: 1117: 1116: 1108: 1101: 1081: 1071: 1057:}} 1054:Set category 1051:{{ 1034:}} 1028:{{ 890:}} 884:{{ 836:AfD notifier 799:db-tabulator 201: 194: 174: 170:Award Winner 166:Coolest Tool 160: 157: 140: 112: 86: 49:operated by 32:user account 29: 1336:the tokens. 1175:AfC sorting 1147:sports list 1113:Source code 969:Description 819:Description 266:Last update 260:Description 234:Please use 134:k8s grafana 1359:Categories 1321:Link label 1297:Lua module 1173:useful on 1157:discussion 1132:See also: 1066:On-demand 1001:On demand 972:Frequency 944:Continuous 919:Continuous 895:Continuous 865:Continuous 724:Continuous 215:TypeScript 211:JavaScript 130:k8s-status 72:bot policy 41:that uses 1327:Use OAuth 1201:Automate 1039:One-time 1016:One-time 985:One-time 822:Frequency 773:routerlog 329:+subpages 301:+subpages 263:Frequency 158:SDZeroBot 126:sdzerobot 64:automated 1242:G13 soon 1145:For the 180:Newcomer 117:runs on 89:block it 1049:Adding 1026:Adding 996:Re-sort 430:WP:PROD 250:Reports 197:Node.js 43:Node.js 1304:WP:BAM 1104:popups 760:stream 626:Weekly 554:Weekly 434:Weekly 407:Weekly 257:Report 219:GitHub 207:SD0001 60:  51:SD0001 47:  39:  1128:To do 841:Daily 825:Logs 755:Logs 698:Daily 674:Daily 650:Daily 602:Daily 578:Daily 530:Daily 506:Daily 482:Daily 458:Daily 269:Logs 245:Tasks 113:This 34:is a 30:This 1282:OOMs 1231:PROD 1220:both 1196:here 1171:very 1085:here 1045:BRFA 1022:BRFA 991:BRFA 978:BRFA 966:BRFA 933:BRFA 909:BRFA 879:BRFA 855:BRFA 831:BRFA 816:BRFA 786:gans 306:ORES 164:2020 80:here 55:talk 1118:All 1059:to 951:err 948:out 926:err 923:out 902:err 899:out 872:err 869:out 848:err 845:out 806:err 803:out 793:err 790:out 780:err 777:out 767:err 764:out 752:Job 734:err 731:out 710:err 707:out 684:err 681:out 660:err 657:out 636:err 633:out 612:err 609:out 588:err 585:out 564:err 561:out 540:err 537:out 516:err 513:out 492:err 489:out 468:err 465:out 444:err 441:out 417:err 414:out 393:err 390:out 369:err 366:out 345:err 342:out 320:err 317:out 292:err 289:out 202:mwn 115:bot 66:or 36:bot 1361:: 1292:. 1277:. 1240:, 221:. 136:). 132:ยท 82:. 57:). 1229:Y 1198:. 1184:. 1159:) 1063:. 1006:โ€” 941:. 121:. 91:. 53:( 45:,

Index


user account
bot
Node.js
SD0001
talk
automated
semi-automated
bot policy
request for approval
here
block it

bot
Wikimedia Toolforge
sdzerobot
k8s-status
k8s grafana

2020 Coolest Tool
Award Winner

There is no Cabal
Node.js
mwn
SD0001
JavaScript
TypeScript
GitHub
Emergency block button
User:SDZeroBot/Shutoff
WP:User scripts/Most imported scripts

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

โ†‘