Comments (3)
# Monday, July 5th, 2021
06:06 ⇐ •cvn-clerkbot quit (~cvn-clerk@cvn/bot/cvn-clerkbot) *.net *.split
06:06 → cvn-clerkbot joined ([email protected])
06:11 cvn-clerkbot → Guest7260
19:35 ⇐ Guest7260 quit ([email protected]) *.net *.split
19:39 → Guest7260 joined ([email protected])
# Saturday, July 10th, 2021
16:08 Krinkle: !quit
16:08 ⇐ Guest7260 quit ([email protected]) Quit: Ordered by Krinkle
16:10 → cvn-clerkbot joined (~cvn-clerk@cvn/bot/cvn-clerkbot)
cvn-clerkbot, which uses python-twisted for IRC, lost its nick name again and did not self-correct in any way. Alternatives to consider:
- Asyncio and irc3, used by wikibugs.
- ib3, via https://github.com/bd808/python-ib3, used by stashbot and jouncebot. (Thanks @legoktm)
- https://limnoria.net/, used by official Libera Chat bots. (Thanks @legoktm)
Things to consider:
- Message buffering to avoid flood kick.
- Message splitting against maxlength.
- Connect and authenticate with NickServ, then join channels.
- Automatic re-authenticate and nick regaining/ghosting as-needed to deal with net splits, plus re-joining of channels to deal with restricted channels that can only be joined when authenticated.
See also EventSource as used by Pywikibot, which has an example of good error handling as part of the loop.
from labs-countervandalism-cvnbot.
Message buffering to avoid flood kick.
irc3 doesn't have this, we implemented it manually in wikibugs. I briefly searched the limnoria docs and didn't see anything obvious either (their flood stuff is about users flooding with !commands).
I do wonder if this is something that can be handled on the network side, getting some sort of higher flood limit or exemption.
Message splitting against maxlength.
Isn't this a think that should be done by the client, so that colors and whatnot are properly split or truncated? wikibugs has manual truncation logic that selects which projects should be listed when announcing a task, cutting off less important ones.
Connect and authenticate with NickServ, then join channels.
All 3 libraries support SASL, so this shouldn't ever be an issue.
Automatic re-authenticate and nick regaining/ghosting as-needed to deal with net splits, plus re-joining of channels to deal with restricted channels that can only be joined when authenticated.
We never did this for wikibugs, ib3 has mixins for this, appears limnoria does too. SASL should ensure that you're always authenticated when trying to join channels.
from labs-countervandalism-cvnbot.
Moved to https://phabricator.wikimedia.org/T327136.
from labs-countervandalism-cvnbot.
Related Issues (20)
- Secondary account creations are displayed as if the creator's account is being created HOT 2
- Fatal error on quit HOT 1
- Fix unmatched block type errors
- Protection flags displayed inside article name HOT 2
- Greylist should not override Blacklist HOT 2
- Ignore multiple spaces between user name and expiry in list commands
- get(admin|bots)/batchgetusers should fully update the list of users HOT 4
- Can not load webresources due to "SecureChannelFailure#012" occured HOT 2
- Can not load new project due to "The remote server returned an error: (404) Not Found." occured
- Release 1.22 HOT 6
- Unable to reload - returns 404 HOT 1
- Broken CentralAuth URL on accounts created by others HOT 6
- ReactorException: Item has already been added. Key in dictionary: 'watchword' Key being added: 'watchword'
- Error "IRC: Closing Link" should be handled HOT 2
- Consider hiding deletion events in CVN channels HOT 2
- Support running CVNBot on dotnet HOT 3
- #cvn-wikidata loses RCReader connection HOT 1
- Process should exit (or restart) if gone from feed network and source network HOT 2
- Ignore blocks made with 'flood' flag HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from labs-countervandalism-cvnbot.