Commit Graph

1635 Commits

Author SHA1 Message Date
Mia
2ab03d2e30 Helptickets: Ensure at least one valid replay is sent for Battle Harassment 2021-10-20 09:41:58 -05:00
Mia
e5ad25fad4 Fix build 2021-10-18 21:56:26 -05:00
Mia
ced4f26d00 Helptickets: Add punish buttons to Inappropriate Pokemon Names tickets 2021-10-18 21:46:47 -05:00
Kris Johnson
8bfc2a4e92
/uspage: Escape usernames later into page generation 2021-10-11 18:55:23 -06:00
Mia
8a06826bfa Add /noforcerename
Requested by Aeonic. This makes it so the Punishments.namefilterwhitelist now makes users outright immune to FRs, instead of just having it logged / immune to one FR. If they're on the namefilter whitelist, they have to be taken off before they can be renamed, as opposed to just being able to log onto the acc anyway. It also ensures only US can add / remove to that list.
2021-10-11 19:19:29 -05:00
Mia
5c7a513f47 Helptickets: Add a ticket submit handler 2021-10-09 20:50:45 -05:00
Mia
30e3475f30 Helptickets: Fix identifying opponents
Using playerTable keys should be more accurate, since the user is unlinked after the game ends.
2021-10-09 20:25:25 -05:00
HoeenHero
70ae6d93ce Github: Dont create a hook if Config is not set 2021-10-08 21:39:28 -04:00
Mia
8581a534d6 Helptickets: Don't refresh IP-Appeals after unlocking IPs 2021-10-06 12:50:59 -05:00
Mia
87a552a3fd Helptickets: Make ticketbans take the duration of the user's longest punishment
This is done where applicable (where the duration of a punishment is more than the default ticketban time would be). Approved / requested by Aeo.
2021-10-04 19:31:26 -05:00
Mia
83ccd6b0ee Helptickets: Strip HTML from ticket title attributes
This fucked up a bunch of HTML.
2021-10-03 19:11:37 -05:00
Mia
3643e94ff7 Helptickets: Add commands to privatize/publicize ticket logs 2021-10-02 15:03:34 -05:00
Mia
c3a829cb3c Helptickets: Make inappropriate name tickets no longer list-only
It had little benefit. Weren't enough tickets to make it work.
2021-10-01 16:33:54 -05:00
Mia
149d5d70ac Helptickets: Fix text ticket button display 2021-10-01 08:58:36 -05:00
Mia
c6804aa827 Helptickets: Stop double-escaping some HTML 2021-09-30 13:15:12 -05:00
Mia
c80cfb531b Support /friend [name] 2021-09-29 16:59:34 -05:00
Mia
7ec57bad4c Helptickets: Properly escape newlines in context
This is probably stupid but it works and doesn't have any other screwups (joining on html is dumb _but_ we escape all HTML out by that point so it's guaranteed to be unique at least)
2021-09-29 14:59:36 -05:00
Mia
6bb5c4ae7b Helptickets: Add /ht submit (and aliases) to the multiline whitelist 2021-09-29 14:25:59 -05:00
Kris Johnson
c48eabfe1e
FIx build 2021-09-27 17:43:06 -06:00
Mia
3e472301f8 Helptickets: Improve IP-Appeal directions 2021-09-27 17:18:18 -05:00
Mia
e685689a3b Usersearch: Fix duplicates in name list
also fixes some bugs with 'mia added 0 term to the usersearch name list', etc.
2021-09-26 12:40:47 -05:00
Kris Johnson
5788d395ca
Fix build 2021-09-26 11:26:49 -06:00
Mia
5587455b7f Helptickets: Show full names for inappropriate username tickets
Requested since sometimes people use symbols / etc that get removed otherwise (that might change the meaning).
2021-09-25 23:09:15 -05:00
Mia
2cc3eb122c Usersearch: Escape HTML in names 2021-09-25 19:58:36 -05:00
Mia
f1011ffd7b Add more help for chatlog commands 2021-09-23 12:48:29 -05:00
Mia
d6415445d0 Improve offine forcerenames
This mostly just sets user.trackRename when the user tries to log in for the first time. Requested by DaWoblefet.
2021-09-22 19:13:07 -05:00
Mia
a53f5ae84a Helptickets: Add better context messages for inapname tickets 2021-09-20 08:14:29 -05:00
Mia
6a1402a83e Helptickets: Move list-only types to a singular button in notifications 2021-09-16 15:12:50 -05:00
Mia
14fda9ff8b Helptickets: Properly block nomarkshared ranges from making IP-Appeal tickets 2021-09-16 14:10:40 -05:00
Mia
c32ae39df3
Spotlights: Fix typo 2021-09-16 07:44:07 -05:00
Mia
6115f6928e Helptickets: Add help for /ht note 2021-09-15 15:14:50 -05:00
Mia
b355909ef0 UNO: Improve error messages
Closes #6780.
2021-09-15 14:46:35 -05:00
Mia
73696f5d71 Fix typo 2021-09-15 09:11:23 -05:00
Mia
5a0f196a43 Helptickets: Move Inappropriate Username tickets to a shared list
See WAIL. Teclis said I could do this now.
2021-09-15 09:00:10 -05:00
Mia
59c5c148af Helptickets: Update password reset description 2021-09-14 09:07:01 -05:00
Kris Johnson
ff13a8d8a3 Usersearch: Exclude global banned users 2021-09-13 21:47:49 -06:00
Mia
9d4929dd9b Usersearch: Specify what terms were added in /usnames add 2021-09-13 12:13:30 -05:00
Mia
b7bc2d7c32 Usersearch: Add help for /usnames and mention it in /help usersearch 2021-09-13 12:11:09 -05:00
Annika
260fc6c176 Trivia: Fix question order 2021-09-12 12:16:38 -07:00
Mia
bb468391bb Spotlights: Don't sort stored spotlight arrays 2021-09-07 09:49:39 -05:00
Kris Johnson
11bf7b38a9 Room FAQs: Allow multiline with HTML FAQs 2021-09-06 17:07:09 -06:00
Kris Johnson
8151ffca2a Room FAQs: Fix source code and repeats display 2021-09-06 17:01:23 -06:00
Mia
a735d1fa54 Filters: Validate falsy terms
Apparently we did not do this before.
2021-09-06 14:08:20 -05:00
Mia
23fc47a471 Helptickets: Add more punishment options to Inappropriate Username tickets 2021-09-05 11:44:39 -05:00
Mia
80ffd2a7b3 Spotlights: Support sorting spotlights by most recent updates 2021-09-02 16:03:25 -05:00
Mia
d32af4e357 Helptickets: Properly sort ticket logs 2021-09-01 16:36:54 -05:00
Mia
127c790e8d Helptickets: Properly track duration for text tickets 2021-09-01 13:13:02 -05:00
Mia
9aff753999 Modlog: Allow drivers to use /mls
Aeo said this was cool.
2021-09-01 13:02:11 -05:00
Mia
a06b8e62d1 Spotlights: Broadcast removal of dailies to roomstaff 2021-09-01 12:18:24 -05:00
Mia
11ab3d83f8 Spotlights: Automatically refresh pages on spotlight change 2021-09-01 12:16:55 -05:00
Mia
7faacd38a7 Helptickets: Fix some grammar 2021-08-31 21:15:20 -05:00
pacmanboss256
23b35498f6
Rename the "mystery" and "authentic" move flags (#8445)
* mystery -> allyanim
* authentic -> bypasssub
2021-08-30 23:07:50 -07:00
Mia
7811795344
Handle new TypeScript version (#8449)
Co-authored-by: Guangcong Luo <guangcongluo@gmail.com>
2021-08-30 20:11:44 -07:00
Mia
0e521deb02 Hosts: Add a way to view single-IP open proxies
Requested by DaWoblefet.
2021-08-27 22:14:31 -05:00
Mia
80f92a6954 Hosts: Log invalid IPs to US room 2021-08-25 22:38:38 -05:00
Annika
299c883ed0 Trivia: Fix 'all' and 'random' fishes 2021-08-20 18:08:04 -07:00
Mia
8cf1035ee2
SQL: Automatically prepare statements unless told otherwise (#8439) 2021-08-18 12:51:39 -07:00
Annika
222745920a Fix CI 2021-08-16 12:03:05 -07:00
Annika
153f223e88
Trivia: Fix type error 2021-08-16 09:20:14 -07:00
Annika
d18993d3c3
Trivia: Attempt to make 'all' fishes work
I hate coding on crappy high school Chromebooks
2021-08-16 09:12:01 -07:00
Annika
62a6219395 Trivia database: Improve error checking 2021-08-15 20:07:17 -07:00
Mia
d858936d09 Chatlog: Fix all crashes, restore Chat import 2021-08-15 17:18:01 -05:00
Mia
140e023d05 Fix build 2021-08-15 16:51:15 -05:00
Mia
030b84b041 Chatlog: Fix crash 2021-08-15 16:32:39 -05:00
Mia
b0fec9f5e2 Chat: Don't setup DB until after processes are spawned 2021-08-15 16:24:25 -05:00
Annika
caeb7e524e Trivia: Don't crash if SQLite is disabled
should fix #8435
2021-08-15 11:36:44 -07:00
Annika
7213dec936 Trivia: Add generic storage interface 2021-08-14 20:35:08 -07:00
Annika
0a33b52ad4 Trivia: Use transactions and split into a directory 2021-08-14 20:35:08 -07:00
Annika
dcb96fa7ed Trivia: Refactor to use SQLite as a storage backend 2021-08-14 20:35:08 -07:00
Mia
953da16164 Dexsearch: Remove dependence on the Chat global 2021-08-14 20:06:48 -05:00
Leonard Craft III
903dd2c29d GitHub: Fix commit ID styling 2021-08-13 14:21:34 -05:00
Mia
882c2dda06 Github: Shorten commit messages properly 2021-08-13 12:20:52 -05:00
Mia
f8c4132381 Github: Add gh short alias 2021-08-13 10:56:25 -05:00
Mia
01e5fc0709 Friends: Use getExact in connection notifications 2021-08-12 23:30:58 -05:00
Mia
0bb65e8a18 GitHub: Restore /git alt to /opensource 2021-08-12 15:55:48 -05:00
Mia
a54ff93edb Fix build 2021-08-12 13:18:59 -05:00
Mia
6c7ce161c0
Add a chat plugin for reporting GitHub actions (#8414) 2021-08-12 11:12:57 -07:00
Annika
6573a1c47f /randomdoublesbattle: Display alternate formes 2021-08-12 11:03:41 -07:00
Mia
b9dd78559c Helptickets: Destroy tickets of previous names on ticketban
This fixes a bug where ticketbanning a namelocked user doesn't destroy their old ticket.
2021-08-11 22:44:10 -05:00
Annika
633e061067 Modlog: Remove text logging code 2021-08-09 14:06:14 -07:00
Leonard Craft III
e8f874c18a
Modlog: Fix double spaces when no moderation found (#8424) 2021-08-08 17:21:17 -07:00
Mia
4c9e9fe042
Mafia: Fix crash in /mafia kill 2021-08-08 14:26:00 -05:00
ayiadvance
d3c0b61b5d
Mafia: Allow transitions between death states (#8418) 2021-08-05 12:49:56 -07:00
Mia
953fcde2fa Friends: Ensure the spectator list only includes battles with your friend as a player 2021-08-04 15:01:52 -05:00
Mia
ce15b9b416 Friends: Limit connection notifications to once every 15 minutes 2021-08-03 17:27:04 -05:00
Annika
521f7c3df6 Modlog viewer: Fix /modnotes bug
`/modnotes` should be more like `/punishlog` than `/mlid`
2021-08-02 13:25:48 -07:00
Annika
3ac44020ac Modlog viewer: Improve help 2021-07-30 20:16:33 -07:00
Annika
237884ec16 Modlog viewer: Add /modnotes command
Requested by Ayia
2021-07-30 20:16:33 -07:00
ayiadvance
c30e53f51d
Remove the word "lynch" from Mafia code (#8412) 2021-07-30 18:43:07 -07:00
Mia
7639427cff Friends: Allow locked users to toggle login notifications 2021-07-30 16:36:48 -05:00
Mia
52aeef992f Helptickets: Notify staff room immediately upon editing notes 2021-07-29 20:43:08 -05:00
Mia
c7bbfd25f9 Friends: Fix spectate list & stop requiring settings to be on 2021-07-29 10:22:01 -05:00
Mia
83e77f9c93 Friends: Write last seen data on disconnect 2021-07-28 14:08:40 -05:00
Mia
de5bc2c419 Helptickets: Restrict modlog searches 2021-07-26 13:37:02 -05:00
Mia
a461c002bc Helptickets: Fix modlog buttons 2021-07-26 13:35:50 -05:00
Mia
6c19c06c44 Chatlog: Fix /help searchlogs 2021-07-26 11:39:43 -05:00
Annika
cfb33eb53f Modlog: Allow non-globalstaff to use modlogs 2021-07-25 15:42:46 -07:00
Annika
11caaf392f Modlog: Improve support for multiple searches 2021-07-25 15:33:42 -07:00
Annika
bcbe100c41
Modlog: Use SQLite for searches (#8004) 2021-07-23 13:47:49 -07:00
Mia
4dbee18695 Friends: Fix login notifications 2021-07-22 16:50:41 -05:00
Mia
c5926158d8 Fix build 2021-07-21 21:58:38 -05:00
Mia
285d084857 Friends: Update language in settings page 2021-07-21 20:25:42 -05:00
Mia
19af1945a2 Friends: Show public battles on the spectator list regardless of setting 2021-07-21 20:23:05 -05:00
Mia
96e4fe3af6 Friends: Fix /help and UHTML 2021-07-21 16:33:27 -05:00
Mia
293c65303d /searchlog: Escape HTML in search 2021-07-21 13:59:44 -05:00
Mia
ddd8205aa0 Chat-monitor: Upload replays for BattleMonitor mutes 2021-07-21 13:28:15 -05:00
Mia
c20cee8b1a Friends: Properly update spectator lists on battle end 2021-07-19 17:16:14 -05:00
Mia
48a71e82a8 Helptickets: Don't allow IP-Appeals from users who have a punishment matching their userid 2021-07-19 16:16:31 -05:00
Mia
f75f99f20a Helptickets: Remove ISP-Appeals 2021-07-19 16:16:31 -05:00
Mia
ed34cc49b1 Friends: Add a page to spectate the battles of friends 2021-07-19 02:57:08 -05:00
Mia
eb9fd0e8e9 Friends: Use getExact in displaying singular pending requests 2021-07-17 18:33:36 -05:00
Mia
1cfead5d99 Friends: Fix single notifications 2021-07-16 23:53:26 -05:00
Mia
6949344351 Friends: Fix button 2021-07-16 22:50:09 -05:00
Mia
48ef5e3758 Friends: Fix crash in hideLogins 2021-07-16 22:49:02 -05:00
Mia
20c795f8f4
Friends: Move caching to User#friends (#8404) 2021-07-16 20:33:07 -07:00
Mia
194a939cd6 Friends: Use /raw
ugh.
2021-07-16 22:23:37 -05:00
Mia
34f9e33116 Friends: Match behavior with online friend requests when only one request is pending 2021-07-16 22:22:14 -05:00
Mia
9323fd2416 Friends: Use Users#getExact more 2021-07-16 15:53:24 -05:00
Mia
2c73519641 Friends: Revert to sending PMs from & 2021-07-16 15:41:27 -05:00
Mia
c9c5e7fbb3 Friends: Display sent list for users blocking requests 2021-07-16 15:31:37 -05:00
Mia
241804aa6b Friends: Send friend request messages from the friend instead of & 2021-07-16 15:26:40 -05:00
Mia
e5fbd64427
Support adding friends (#7333) 2021-07-16 12:56:34 -07:00
PartMan
29421ee145
Scavengers: Notify users on hint addition (#8400) 2021-07-16 12:50:34 -07:00
Mia
cee7d8290c Youtube: Update TwitchStream display HTML
Requested by Felucia.
2021-07-15 23:43:12 -05:00
Mia
c57691e2a6 Fix build pt. 2 2021-07-15 17:59:11 -05:00
Mia
422ca25506 Fix build 2021-07-15 16:44:04 -05:00
Mia
bb19c45448 Helptickets: Add extra state tracking, update messages 2021-07-15 15:16:40 -05:00
Annika
5b5c1a1646 Fix room privacy checks
Room.settings.isPrivate can be a boolean, undefined, or a string.
2021-07-15 13:13:55 -07:00
Karthik
8b911cbf12
Remove LC Uber as a valid tier in /ds help text (#8399) 2021-07-15 08:15:03 -07:00
Annika
52a9378361 Trivia: Support combining multiple categories 2021-07-13 16:01:03 -07:00
Annika
6cc4ebe5d7 Trivia: Fix crash when no questions have been added 2021-07-13 15:43:38 -07:00
Mia
84bc3972a6 Helptickets: Add help for /ht removenote
Didn't get staged in my previous commit, unfortunately.
2021-07-11 22:20:58 -05:00
Mia
cdb910be4c Helptickets: Support adding hover notes to tickets 2021-07-11 18:58:45 -05:00
Annika
c5f881b76f More fixes for ts-node 2021-07-10 16:33:04 -04:00
PartMan
dfb246d40f
Datasearch: Minor refactor (#8390)
This fixes/changes a couple things:

a) Long dexsearch queries now reject with an error instead of blindly trimming and giving stuff like ``retur could not be found in any of the search categories``.
b) Maxgen now works properly (before this, the maxgen parameter only worked if it was either the first term or if there were no spaces after the preceding comma).
c) Mod now allows spaces around the equals sign (`mod = SSB`) instead of matching properly and failing on the split.
d) Gen0 no longer works in abilitysearch / itemsearch (not that relevant, but since current behaviour is to block Gen 1/2, seems a bit weird to allow 0).
e) Gen X and Maxgen X now work in abilitysearch / itemsearch (before this, they'd give a blank 'no results found').
f) Gen X and Maxgen X now support multi-digit generations (well in advance before Gen 10 releases, but doesn't hurt to be ready).
2021-07-10 04:19:03 -07:00
Mia
ba2a109311
Support viewing stats on the activity of rooms (#8345) 2021-07-09 20:01:15 -07:00
Annika
6ed55b6d1f
IPTools: Add sanity checks (#8331) 2021-07-09 19:59:45 -07:00
Annika
c134195915
Use ts-node instead of Sucrase (#8369) 2021-07-09 19:59:22 -07:00
Mia
c27cc7ae64 Helptickets: Properly link logs for text tickets in /ht list 2021-07-09 17:14:45 -05:00
Mia
aeac844ed1 Helptickets: Refresh text tickets on claim 2021-07-09 17:00:10 -05:00
Kris Johnson
598ac409e8 Rename Let's Go! mod to 'gen7letsgo' 2021-07-06 23:07:51 -06:00
Mia
5b4e2fe172 Spotlights: Check /setdaily permissions for viewing source instead of /daily
https://www.smogon.com/forums/threads/let-drivers-see-sourcecode-for-dailies-when-doing-daily.3687106/#post-8905412
2021-07-02 20:26:10 -05:00
Kris Johnson
876c86d236 Change type declaration formatting for Maps/Sets 2021-06-29 22:47:28 -06:00
Kris Johnson
61b72b687c Wifi: Modernize code of Giveaway#getSprite 2021-06-29 22:45:53 -06:00
Annika
56754afb42 Punishments: Remove getPunishType functions
These are poorly designed as they only return one punishments, but users can now have several.
2021-06-29 17:55:45 -07:00
Kris Johnson
62eaf3f5fa Room FAQs: Update help 2021-06-28 17:08:16 -06:00
Mia
44ef659eb5 Helptickets: Better handle RG errors
Seriously, fuck ripgrepe error reporting.
2021-06-24 20:46:08 -05:00
Mia
d1b397bc7c Helptickets: Fix crash 2021-06-24 20:39:11 -05:00
Mia
1176e393f0
Helptickets: Log text tickets (#8352) 2021-06-24 14:39:42 -07:00
Mia
59c404c8c4
Chat-monitor: Wrap autolocked messages in code formatting 2021-06-24 14:00:44 -05:00
Mia
7cad87035f Roomfaqs: Actually fix crash 2021-06-22 23:20:57 -05:00
Mia
342ce89a38 Roomfaqs: Fix crash 2021-06-22 23:19:57 -05:00
Mia
cb0bb92ad3 Helptickets: Determine opponents from replays for battle harassment tickets 2021-06-22 23:13:25 -05:00
Mia
e02b358da5
Room FAQs: Support HTML (#8343) 2021-06-22 18:26:31 -07:00
Karthik
5db9d39756
Support default format for randbats commands (#8367) 2021-06-22 12:06:02 -07:00
Mia
eedf54a01b Helptickets: Hide punishment options on ticket close 2021-06-21 23:03:56 -05:00
Mia
45a2f8e125 Helptickets: Add autocompletes to the 'respond to reporter' tab 2021-06-17 11:39:26 -05:00
Mia
ce7bb61dd4 Helptickets: Update some grammar and behavior 2021-06-14 12:20:51 -05:00
Mia
197fe7b6b8 Spotlights: Add a refresh button to the dailies page
https://www.smogon.com/forums/threads/add-a-refresh-button-to-the-daily-spotlights-page.3686101/#post-8886206
2021-06-13 13:10:52 -05:00
Mia
e6ebcebc82 Helptickets: Update IP-Appeals to text and add new Appeal responses 2021-06-13 12:14:14 -05:00
Annika
264831e36a /randombattles: Display sets for the battle format 2021-06-08 18:17:16 -07:00
PartMan
46a858f2be
Movesearch: Add defrost and reflectable aliases (#8359)
Added Magic Coat/Magic Bounce since those are intuitive terms to use while searching
2021-06-08 11:45:16 -04:00
Mia
6f6b564f7f Hangman: Don't allow filtered words in guesses 2021-06-07 22:07:09 -05:00
Distrib
fad49102e0
Helptickets: Change password reset link (#8358) 2021-06-06 18:40:18 -07:00
Annika
b3b18465a4 Jeopardy improvements
- announce ability to buzz in via chat rather than via a colored square in HTML
- improve validation of integer arguments
- improve grammar
2021-06-03 17:01:13 -07:00
Mia
b32a397f72 Helptickets: Update punishment UI 2021-06-03 13:40:32 -05:00
Annika
b712278fd0
Use global punishments instead of fake rooms (#8350) 2021-06-02 21:54:33 -07:00
Annika
613bf3243f Jeopardy: More fixes 2021-06-02 14:42:56 -07:00
Mia
81af92da52 Helptickets: Make the 'punish reporter' button more distinct 2021-06-02 16:37:20 -05:00
Annika
343db5a762 Jeopardy: Fix crash 2021-06-02 13:49:44 -07:00
Annika
c71e090153 Username prefixes: Fix bug in loading 2021-06-01 11:49:50 -07:00
Mia
ec7dfa203f Prefix-Manager: Fix crash 2021-06-01 09:59:57 -05:00
Annika
5eb01c8abb Further improvements to the Jeopardy plugin 2021-05-31 15:00:51 -07:00
Mia
09e298f15b
Punishments: Support giving multiple punishments to one user (#8265) 2021-05-31 11:06:01 -07:00
Annika
836a7a2a10 Improvements to the Jeopardy plugin
Requested by Trivia staff and approved by me
2021-05-30 20:55:22 -07:00
Mia
5f4671bb79 Fix build 2021-05-30 22:48:52 -05:00
Mia
e0ca414a89 Helptickets: Fix proof in PM Harassment tickets 2021-05-30 22:19:02 -05:00
fart
839075a166
Allow alternative parameters for dexsearches (#7847) 2021-05-30 16:13:39 -07:00
Annika
f0d142e621 Chat monitor: Fix bug in loading from JSON 2021-05-30 15:55:54 -07:00
Annika
652bbb1064
Jeopardy: Refactor to use Chat.ErrorMessage (#8342) 2021-05-30 02:35:39 -07:00
Mia
9000eebbef Chatlog: Fix date validation 2021-05-30 01:43:17 -05:00
Mia
69990a6ddc Chat-monitor: Fix crash 2021-05-30 01:40:14 -05:00
Mia
5f9072b2ba
Chat-monitor: Centralize functions and migrate to JSON (#8328) 2021-05-29 22:11:32 -07:00
Mia
487fc5e3fa Fix comment 2021-05-29 21:02:16 -05:00
Mia
8ba56d3d03 Chatlog: Fix crash in date validation 2021-05-29 20:56:07 -05:00
Mia
d9109e64bc Hangman: Allow creators to play in random hangman games 2021-05-29 20:11:48 -05:00
Annika
4e5939ecd6 Jeopardy: Improve message displayed on timeout 2021-05-29 17:55:36 -07:00
Annika
8714bf36ce /randbats: Use a <details> dropdown 2021-05-29 13:23:31 -07:00
Mia
fb1b5582cc Helptickets: remove extra replay link HTML 2021-05-29 11:14:36 -05:00
Mia
7ae21cebf8
Chat: Support exporting custom handlers from plugins (#8319) 2021-05-28 23:13:01 -07:00
Mia
bf648598ec
Add modlog stats page (#8339) 2021-05-28 12:12:50 -07:00
Mia
a9c200baf1 Helptickets: Properly handle ticketbans in text tickets 2021-05-28 09:45:42 -05:00
Mia
3c6c560e36 Helptickets: Attempt to determine a reported user in battle harassment tickets 2021-05-28 09:30:44 -05:00
Mia
248ce8b3b3 Helptickets: Display punishment list for reporters and add more punishments 2021-05-27 08:25:13 -05:00
Annika
83df279b1d
Add a chat plugin to manage username prefixes (#8338) 2021-05-26 14:39:13 -07:00
Guangcong Luo
74211859c9 Update to TypeScript 4.3
Changes relevant to our codebase:

- TypeScript now knows that `typeof id === 'string'`! A bunch of casts
  on `User | ID` or `Room | RoomID` are no longer necessary!!!

- `override` will protect against certain typoes, and we'll adopt it
  (and `--noImplicitOverride`) as soon as sucrase comes in

- `declare` is now required for properties we want to narrow the type
  of without directly overwriting - a good thing to use going forward,
	but very annoying to fix all our old code for
2021-05-26 14:16:54 -07:00
Distrib
0596c9ba6e
Datasearch: Increase in the number of pokemon generated in /randpoke (#8317) 2021-05-26 12:38:20 -07:00
Mia
2fe8cb44bb Helptickets: Support fetching replay logs 2021-05-26 13:23:57 -05:00
Mia
817fe96134 Usersearch: Use tables in the page 2021-05-25 20:02:11 -05:00
Mia
5523cc5f96 Helptickets: Fix punishment proofs 2021-05-25 18:37:14 -05:00
Mia
9df9d10c98 Autoresponder: Fix again 2021-05-25 18:12:08 -05:00
Mia
1052e3c786 Autoresponder: Fix crash 2021-05-25 17:34:52 -05:00
Mia
21cc7b05ec
Autoresponder: Migrate logs to JSONL (#8335) 2021-05-25 15:21:41 -07:00
Mia
756db075be
Usersearch: Support setting a list of most-searched names (#8283) 2021-05-25 15:21:32 -07:00
Mia
d31ceb5693 Helptickets: Show Pokemon names in ticket for inap pokemon name tickets 2021-05-25 15:16:52 -05:00
Mia
a730b6a2bc Helptickets: Add shared battle HTML to pm harassment 2021-05-25 14:43:27 -05:00
Mia
f5ab015f0e Helptickets: Ensure battle replay links aren't duplicated 2021-05-25 13:58:45 -05:00
Mia
c4a667ae1d Hosts: Support aliases for suffix types 2021-05-24 19:58:21 -05:00
Guangcong Luo
d555f6fe0d Fix max-len for long regexes
We use eslint-disable for max-len in a lot of places where we don't
actually need it. This fixes that.
2021-05-23 20:48:31 -07:00
Guangcong Luo
49cacba6cf Support !rebroadcast to bypass broadcast cooldown
The old system where only admins can bypass the broadcast cooldown
is weird, because it's wrong in both directions: Admins could
unintentionally re-broadcast, but other users couldn't intentionally
re-broadcast.

Now no one can unintentionally re-broadcast and everyone can
intentionally re-broadcast.
2021-05-23 19:41:07 -07:00
Guangcong Luo
4a716f1456 Use aliases for !formathelp broadcast cooldown
(This makes it so if someone uses `!om sketch` it will prevent use
of `!om sketchmons` for a while.)

Suggestion thread: https://www.smogon.com/forums/threads/make-the-broadcast-cooldown-for-commands-apply-to-aliases-of-that-command.3684569/
2021-05-23 18:23:52 -07:00
Annika
44dd12686d Mastermind: Maintain scores for users who leave 2021-05-23 16:11:54 -07:00
Mia
1721152389 Helptickets: Remove inner dropdowns on battle logs 2021-05-23 11:53:26 -05:00
Mia
68c0be6594 Netfilters: Remove accidental commit
I was still debugging this and i'm unsure how this snuck in, seeing as it was on another branch...
2021-05-21 19:21:10 -05:00
Mia
fdbf6c693c Helptickets: Fix formatting in battle logs 2021-05-21 17:04:15 -05:00
Mia
081574bfdb Helptickets: Properly filter battle rooms 2021-05-21 12:41:53 -05:00
Mia
feab8f0049 Helptickets: Show all chat messages in reported battles 2021-05-21 12:35:08 -05:00
Mia
2cf47420ea Helptickets: Auto-upload common battle replays on submit for PM harassment tickets 2021-05-21 12:00:56 -05:00
Mia
310e4e8987 TOTD: Document /-otd removewinner 2021-05-20 22:11:36 -05:00
Annika
6628bb9d36 Mastermind: Support category aliases 2021-05-20 13:01:23 -07:00
Mia
538ca60d14 Roomevents: Check /roomevents add permissions for viewing source
Currently, it checks /roomevents view. But, /roomevents view does not have room permissions, as it is usable by anyone. As such, this makes it so anyone who can add a roomevent can view sources.
2021-05-20 09:36:11 -05:00
Annika
f71fb356f9 /randbats: Don't show sets for future gens 2021-05-19 10:39:18 -07:00
Mia
cbb5cf8ad5 Helptickets: Remove extraenous linebreak 2021-05-19 12:32:07 -05:00
Mia
88b4db05c3 Helptickets: Add global modlog button in PM harassment 2021-05-19 12:30:21 -05:00
Mia
4cd8031bb4 Helptickets: Link to client, not replays, in PM harassment tickets 2021-05-18 11:29:29 -05:00
Mia
b924534cb1 Helptickets: Fix shared battles display 2021-05-18 09:53:55 -05:00
Mia
9e459daee2 Helptickets: Support a disclaimer message on submit 2021-05-17 14:44:57 -05:00
Mia
8775d52953 Helptickets: Support HTML error messages for text tickets 2021-05-17 14:44:09 -05:00
Mia
d2c4eaf67e Helptickets: Make PMHarassment a text ticket type 2021-05-17 14:37:37 -05:00
Mia
52d1042c96 Helptickets: Support async checker functions
Likely necessary for future commits, either way cleaner to break them into separate commits (organization reasons)
2021-05-17 12:19:32 -05:00
Guangcong Luo
c695620e58
Refactor to new challenge system (#8303)
See PR for full details:

https://github.com/smogon/pokemon-showdown/pull/8303
2021-05-17 07:15:01 -07:00
Mia
e5c568274c Helptickets: Prioritize text tickets in staff display 2021-05-17 08:53:29 -05:00
Guangcong Luo
58c85ee125 Fix crash with min source gen in /learn 2021-05-17 04:30:00 -07:00
Mia
38374f8bd9 Alias /chatlog to /chatlogs 2021-05-16 19:53:33 -05:00
Mia
1ebf254697 Remove accidental debug print
Didn't see i didn't save.
2021-05-16 12:56:27 -05:00
Mia
959cb78aab Helptickets: Only state resolution time if it was more than 1 second ago 2021-05-16 11:28:21 -05:00
Annika
411858bbe9 /randombattles: Display sets for alternate formes 2021-05-15 13:33:50 -07:00
Mia
e351fd8222 Helptickets: Save replays on text ticket submit 2021-05-14 15:53:56 -05:00
Guangcong Luo
997c3e2fe8 Further fix Rock Paper Scissors
- You no longer get kicked out if you try to join the game room manually

- Games no longer default to private

- Games now auto-pause if both players time out

- Paused games now have a Resume button

- Games no longer lose history if you leave/rejoin

- It is now possible to reject challenges

- Fix `game.destroy()` improperly getting overridden
2021-05-14 02:28:25 -04:00
Guangcong Luo
509d0abad4 Refactor out some Object.keys invocations
If you need values, you should be using `Object.values` or
`Object.entries` directly.
2021-05-13 23:02:04 -07:00
Mia
7e45048519 Helptickets: Make text tickets use userid modlog search 2021-05-13 16:42:58 -05:00
Mia
2a9f451434 Helptickets: Display user language in Staff room buttons 2021-05-13 15:40:35 -05:00
Mia
e83b030c09 Chat-monitor: Ensure users receive offline warns with no reason
In practice, it shouldn't happen much, but it never hurts to ensure proper behavior.
2021-05-13 15:31:25 -05:00
Mia
172408838a Helptickets: Improve formatting of proof URLs 2021-05-13 14:21:10 -05:00
Mia
b1163a84a2 Helptickets: Improve formatting of reported battle URLs 2021-05-13 14:14:03 -05:00
Mia
32272aaa39 Helptickets: Format claimed text tickets properly 2021-05-13 12:37:19 -05:00
Mia
30d582443a Helptickets: Send Inap Username ticket forcerenames to Staff 2021-05-13 11:53:37 -05:00
Mia
a591868fbd Helptickets: Support leaving a staff note in text tickets 2021-05-13 09:58:30 -05:00
Guangcong Luo
3038147315 Also remove unused getPlayers function in RPS 2021-05-13 06:58:16 -07:00
Guangcong Luo
1cc52d6607 Remove unused clearChoices function in RPS 2021-05-13 06:48:50 -07:00
Mia
b2963ff53b Helptickets: Style textareas 2021-05-13 08:41:23 -05:00
Guangcong Luo
4e213368dc Redesign Rock Paper Scissors
This new update will have it looking a lot nicer, and also fixes some
architectural issues with the old design.
2021-05-13 09:39:51 -04:00
Mia
12b319e713 Helptickets: Add claiming and add more punishment types to text tickets 2021-05-13 08:34:52 -05:00
Mia
8e624e744e Helptickets: Add a hover display for text tickets and reasons for battle harassment locks 2021-05-12 20:05:36 -05:00
Mia
b496298c29
Helptickets: Refactor to support text-only tickets (#8179) 2021-05-12 20:24:36 -04:00
Mia
1a7d1db909 RPS: Make /rps challenge work in PMs with no target again 2021-05-12 10:57:54 -05:00
Mia
acda9585f8 RPS: Respect /blockchallenges 2021-05-12 08:59:22 -05:00
Guangcong Luo
26392b5be8 PM-convert |uhtml| and |uhtmlchange|
`|uhtml|` and `|uhtmlchange|` are now converted to `/uhtml` and
`/uhtmlchange` in PMs, like `|html|`. This should simplify stuff
in PMs going forward.
2021-05-11 20:46:26 -07:00
Mia
42b6a59af8 Fix formatting
Oops.
2021-05-11 16:21:25 -05:00
Mia
23e2c28388 Polls: Respect Config.noipchecks 2021-05-11 16:20:32 -05:00
PartMan
f2a10c8e0d
Scavengers: Ladder isn't monthly (#8295) 2021-05-10 21:41:22 -07:00
Mia
0b2f63b9f3 Info: Support twitch links in /show 2021-05-10 21:57:20 -05:00
Mia
2864b6dd87 Autoresponder: Remove minimum length 2021-05-10 20:00:51 -05:00
Mia
518fccd921 Youtube: Allow Pokemon Go to use /twitch watch 2021-05-10 10:10:56 -05:00
PartMan
cab2ad0c08
Scavengers: Italicize host names on end (#8290)
The `<em>` being wrapped around each individual username and not the entire host string is intentional since it looks better  - and also allows parsing of hosts from the finishing message
2021-05-10 00:20:14 +02:00
Mia
a7c0f8054a Chatlog: Fix crash
This should ensure that all dates passed to roomstats are in the form year-month. The crashes came from only a year being passed
2021-05-08 11:29:18 -05:00
Mia
8be458463d Autoresponder: Update permission checks for raw regex
Global staff with dev mod should be able to do it.
2021-05-07 17:20:09 -05:00
Mia
fd29cc4cf3 TOTD: Fix timestamp parsing 2021-05-07 12:40:01 -05:00
Mia
30c461bfdc TOTD: Fix timestamp display
Take 2. Hopefully.
2021-05-07 12:27:09 -05:00
Mia
f949f9ba66 Chat-monitor: Use new spoiler format instead of SPOILER:
Mentioned in Staff, slightly cleaner.
2021-05-06 13:21:54 -05:00
Mia
64b3b554c2 Usersearch: Add namelock buttons
Requested by staff, approved by Ransei.
2021-05-05 16:24:01 -05:00
Mia
a5d3aaee35 Helptickets: Don't display language if set to English in /ht list 2021-05-05 14:27:09 -05:00
Mia
5f21bc1d9d Helptickets: Update language display in /ht list
Staff preferred this, from opinions given when it went live.
2021-05-04 20:54:58 -05:00
Annika
2df7307ca2 Helptickets: Display language in ticket list 2021-05-03 10:35:37 -07:00
Mia
a20f2ebdf2 Helptickets: Add the alias /ht tb to /ht ban
Requested by a few staff
2021-05-03 10:45:46 -05:00
Annika
f6b21b90ce Trivia: Support games with fewer than 3 players
Requested by Trivia roomstaff
2021-05-02 21:36:22 -07:00
Annika
38f16f2097 Trivia: Add a button for signups 2021-05-02 21:34:50 -07:00
Kris Johnson
5331e0e748
Refactor splitTarget to splitUser (#8246) 2021-05-01 00:42:25 -07:00
Guangcong Luo
e450e8082e Fix bug in requireUser refactor 2021-04-30 18:32:43 -07:00
Guangcong Luo
a480a84ce4 Chat API: Add requireUser
This simplifies a lot of `splitUser` uses that immediately go on
to make sure the user actually exists.
2021-04-30 17:14:35 -07:00
Mia
1b0bcc9000 Usersearch: Remove extraneous linebreaks when there are no online matches 2021-04-29 09:56:20 -05:00
Guangcong Luo
17ca6b271c Add a bit more documentation for plines 2021-04-28 01:53:03 -07:00
Guangcong Luo
09d2b9c514 Deprecate splitTarget with splitUser
(Note that the `splitUser` API isn't stable yet, and a future update
will determine if we want to call the final output `message` or
`rest`.)
2021-04-28 01:45:56 -07:00
Guangcong Luo
9abbe47531
Support setting a default format/mod for commands in rooms (#8237) 2021-04-27 15:38:51 -07:00
urkerab
d4662c4c04
Handle extraneous parentheses again (#8238) 2021-04-27 15:06:51 -07:00
Annika
4bbb809c7b
Mastermind: Fix sorting in getTopPlayers 2021-04-27 09:09:37 -07:00
urkerab
74ed6a3651
/math: Give the negative operator a precedence (#8235) 2021-04-26 18:53:32 -07:00
Guangcong Luo
810aff74cd Namespace more server global types 2021-04-25 14:16:27 -07:00
Guangcong Luo
0e0389bdc8 Rename pageContext.send to pageContext.setHTML
It's currently not very similar to commandContext.send so using the
same name could make things very confusing.

We have a new `pageContext.send` function that actually behaves as
you'd expect.
2021-04-25 13:25:42 -07:00
Guangcong Luo
486f292904
Refactor everything to use Utils.sortBy (#8220)
A few uses of `array.sort()` have been left alone:

- sorting in `data/` because they aren't supposed to import anything

- `set-importer` because I still have no clue what that's for and what
  dependencies it is/isn't allowed to have

- `sort()` with no arguments used as a lexical sort (at which point
  `sortBy` offers no benefits)

All other cases have been replaced with `Utils.sortBy`, which should
be a massive increase in readability.

Sort orders should be much more readable now, without needing to puzzle
through sign issues. The order is always low-to-high, A-to-Z,
true-to-false.
2021-04-23 22:41:00 -07:00
Mia
d992b8f5fa
Add more support for custom punishments (#8215) 2021-04-23 22:40:31 -07:00
Kris Johnson
a1bdafbfe8
Add room sections (#8205) 2021-04-23 22:39:56 -07:00
Annika
909d4657f4 Trivia: Further clarify typing 2021-04-22 12:38:33 -07:00
Annika
df16828aaf Trivia: Fix typing for TriviaLadder 2021-04-22 12:10:13 -07:00
Mia
5586484622 Hosts: Fix crash 2021-04-22 11:41:16 -05:00
Annika
0e21aebfab Trivia: Improve display for unranked games 2021-04-21 20:27:16 -07:00
Mia
e9b1bfe5f0 Chat-monitor: Fix /filter help
(CommandContext#run does not work for help commands that are arrays)
2021-04-21 08:30:19 -05:00
Annika
d5a4c7d9e2 CommandContext#globalModlog: Make user optional
Global modlog entries aren't always acting on a user, so making this parameter optional makes sense. I also changed them to default to null for consistency with CommandContext#modlog.
2021-04-19 08:53:17 -07:00
Kris Johnson
f4fda49201 Update Battle Factory tests and command 2021-04-16 17:35:26 -06:00
Kris Johnson
e9e58c9f99 Dexsearch: Fix bug with mod parameters 2021-04-15 16:44:44 -06:00
Mia
5ed9517c84 Polls: Increase max question limit 2021-04-15 12:11:33 -05:00
PartMan
54ebe56f20
Scavengers: Escape usernames in /scav status (#8201) 2021-04-15 15:46:43 +02:00
Kris Johnson
a0c3f105b2
Add /filter test (#8197) 2021-04-14 10:15:25 -07:00
Distrib
334df4a744
Announcements: Fix /announcement htmlcreate (#8194) 2021-04-13 14:00:48 -07:00
Mia
1d494b6f2d RPS: Fix bugs with matchups and lower round cap 2021-04-12 10:40:31 -05:00
Leonard Craft III
d1e863b584
Help Tickets: Add cheating report type (#8190) 2021-04-10 01:14:04 -07:00
Annika L
583dceb693 Chat monitor: Weeklock for slurs in Pokemon nicknames 2021-04-08 22:18:38 -07:00
Mia
6605e1e1b7 Autoresponder: Correctly format newlines in FAQs and improve style 2021-04-08 10:04:17 -05:00
Guangcong Luo
5233559183 Refactor Dex types 2021-04-08 07:08:56 -07:00
Guangcong Luo
13189fdb02
Update Dex API (#8181)
This is the change that renames:

- `Dex.getMove` -> `Dex.moves.get`
- `Dex.getAbility` -> `Dex.abilities.get`
- `Dex.getItem` -> `Dex.items.get`
- `Dex.getSpecies` -> `Dex.species.get`
- `Dex.getEffect` -> `Dex.conditions.get`
- `Dex.getNature` -> `Dex.natures.get`
- `Dex.getType` -> `Dex.types.get`
- `Dex.getFormat` -> `Dex.formats.get`

In addition, some other APIs have been updated:

- `getByID` methods have also been added to every other table.
- `Dex.moves.all()` now gets an array of all moves
  - Plus equivalent methods for `abilities`, `items`, `species`, `formats`, `natures`, `types`
  - Note: there's no `Dex.conditions.all()`
- new API: `Dex.stats` for naming/iterating stats
- `Dex.getEffectByID` -> `Dex.conditions.getByID`
- `Dex.getType` -> `Dex.types.get`
- `Dex.data.Formats` -> `Dex.data.Rulesets`
- `Dex.formats` -> now an array `Dex.formats.all()`
- `Dex.getRuleTable` -> `Dex.formats.getRuleTable`
- `Dex.validateFormat` -> `Dex.formats.validate`

Team functions have been split off into a new `sim/teams` package:

- `Dex.packTeam` -> `Teams.pack`
- `Dex.fastUnpackTeam` -> `Teams.unpack`
- `Dex.generateTeam` -> `Teams.generate`
- `Dex.stringifyTeam` -> `Teams.export`

`Teams.export` has also been rewritten to better match how it works in client.

This implements #8178
2021-04-08 03:00:37 -07:00
Annika
6806b8c3ac Chat monitor: Weeklock for slur evasion 2021-04-06 12:42:42 -07:00
Mia
7ea8cfa668 TOTD: Fix keys[0] not being the nom 2021-04-06 11:58:02 -05:00
Mia
708d81efde OTD: Fix double timestamp display 2021-04-06 11:50:28 -05:00
Mia
4ec9db3489 TOTD: Fix timestamp display and ensure timestamp always exists 2021-04-05 16:01:48 -05:00
Mia
c506b2118c Hangman: Fix caps sensitivity in /hangman untag 2021-04-05 11:25:28 -05:00
Annika
f43795880c Repeats: Ensure repeat IDs aren't empty strings 2021-04-03 18:04:52 -07:00
Mia
46dc3409b6
Helptickets: Notify users of /faq proxy when opening an IP-appeal ticket (#8132) 2021-04-02 22:29:14 -04:00
siteworks
d887c00795
Mafia: Change lynches to vote in the votebox (#8149) 2021-04-02 18:52:13 -04:00
Mia
294e3a4a57
Chat monitor: Refactor to handle private filters better (#8112) 2021-04-01 15:35:37 -07:00
Guangcong Luo
c6edf9389f Minor refactor to RPS code 2021-04-01 15:07:27 -07:00
Mia
4bfbd1b78d Fix build 2021-04-01 10:27:23 -05:00
Mia
f19f464ea7 Chat: Properly remove old data for some onRename handlers 2021-04-01 00:24:54 -05:00
Mia
b7680c783d
Add infrastructure to rename chat plugin data with rooms (#8153) 2021-04-01 01:23:01 -04:00
Mia
a353e9ab43 Hangman: Fix case insensitivity in /hangman addtag 2021-03-29 21:11:00 -05:00
PartMan
fb51d2d769
Scavengers: Make !scav queue broadcastable (#8131) 2021-03-26 19:23:04 -07:00
Annika
ca9d8d31a8 Fix visual glitch in /randbats in Gen 1 2021-03-26 08:53:49 -07:00
Annika
af8b286d2c Mastermind: Fix leaderboard bug and add aliases 2021-03-25 13:32:00 -07:00
Mia
4f31d369f5 Add an easy way to disable battlesearching commands 2021-03-25 12:24:12 -05:00
Mia
0c849570d2
Hangman: Support tagging premade phrases (#8133) 2021-03-24 16:10:33 -07:00
Kris Johnson
2e4eaf97e7 Announcements: Mark formatted text as trusted 2021-03-23 12:47:40 -06:00
Kris Johnson
dbc75a0ed5 UNO: Add a missing space when listing players 2021-03-23 02:37:16 -06:00
Mia
b21def4e91
Help tickets: Refresh /ht list on ticket update (#8113) 2021-03-22 15:55:58 -07:00
Mia
a15268f9c1 Helptickets: Remove extraneous 'month' from staff stats page 2021-03-22 13:31:42 -05:00
Distrib
0bd9f47324
Datasearch: Improve dexsearchhelp & movesearchhelp (#8066) 2021-03-21 18:42:04 -07:00
Annika
c1fa436e35 Trivia: Implement a /trivia unrankednew command
This enables the creation of Trivia officials that do not reward points.
2021-03-20 12:30:46 -07:00
Annika
6ecf74fa55 /randbats: Don't display Gmax sets in old gens 2021-03-20 12:30:46 -07:00
Annika
1a8e65bbd9 Improve the /randbats command for Gmax sets 2021-03-19 20:48:57 -07:00
Mia
1623cf40d9 TOTD: Fix generated help 2021-03-18 15:02:42 -05:00
Mia
666773b561
TOTD: Fix /-otd toggleupdate and clean up (#8126) 2021-03-18 10:14:54 -07:00
Mia
32d727a3ea
TOTD: Fix legacy loading (#8125) 2021-03-18 08:23:04 -07:00
Mia
5a3d6067b2 TOTD: Restore old method of updating command table 2021-03-18 10:12:37 -05:00
Mia
70f8970825 TOTD: Fix -otd help 2021-03-18 09:53:45 -05:00
Mia
9bb9b44295
Thing of the Day: Refactor storage / remove hardcodes (#8119) 2021-03-18 07:08:33 -07:00
Mia
c4b23e790d
Helptickets: Automatically save replays linked in tickets (#8120) 2021-03-18 00:21:21 -07:00
Mia
6259ce27f8 Chat-monitor: Properly modlog /allowname names 2021-03-17 14:07:37 -05:00
Mia
523f572bec Helptickets: Handle gbanned namelocked users properly 2021-03-15 16:24:42 -05:00
Mia
ea3bd8303f
Roomstats: Display total stats and handle empty logfiles better (#8117) 2021-03-15 07:54:21 -07:00
fart
f07abc96b3
Add alias for /poll queuehtml (#8118)
Some staff have expressed confusion on the syntax of queueing HTML polls, since it is inconsistent with /poll htmlcreate, where html- comes before create (compared to queuehtml, where -html comes after). Instead of changing it entirely and causing additional confusion for people who got used to one command, this allows either command to be used. Further, the command for queuing HTML polls was not listed in the help for the command.
2021-03-15 03:42:04 -07:00
Mia
a4641eaf58
Fix /mafia extend in pages 2021-03-12 16:40:50 -06:00
Mia
7f928e9837 Thing of the Day: Use writeUpdate() 2021-03-10 20:22:50 -06:00