Comments (4)
This still causes exceptions to be logged to #cvn-broadcast from time to time.
CVNBot14: *DD/1.0*ERROR*ReactorException*Key duplication when adding: watchword*#commons.wikimedia [[Special:Log/upload]] upload * Ludvonga * uploaded "[[File:Malolotja.jpg]]": {{Information |Description ={{en|1=Malolotja Nature Reserve - Frokostudsigt}} |Source =https://www.flickr.com/photos/shevy_dk/5703043684 |Author =René C. Nielsen |Date =2011-05-05 |Permission = |oth
from labs-countervandalism-cvnbot.
A better fix would be to fix the logic problem in cases like the below:
// Check if the edit summary matches BES
listMatch ubes2 = listman.matchesList(r.comment, 20);
if (ubes2.Success)
{
attribs.Add("watchword", ubes2.matchedItem);
attribs.Add("lmreason", ubes2.matchedReason);
uMsg = 95620;
}
// Now check if the title matches BES
listMatch ubes1 = listman.matchesList(r.title, 20);
if (ubes1.Success)
{
attribs.Add("watchword", ubes1.matchedItem);
attribs.Add("lmreason", ubes1.matchedReason);
uMsg = 95620;
}
There are bound to be cases where a watchword occurs in both the title and the edit summary (for example), or for an edit to match both an edit-summary watchword and e.g. a "bad user name" pattern.
In those cases the end result is that the last match wins. As such, we should reverse these code blocks for the most important (winning match) to happen first instead last, and then either return early or place the rest in an "else" block so that they don't happen and thus we don't try to add attributes for messages we no longer use.
Doing so would also avoid conflicts where e.g. we match A first and add a few attributes and set uMsg
, but then match something else and end up overwriting some attributes (triggers the warning), but also leaving behind unrelated ones.
from labs-countervandalism-cvnbot.
Still seen:
CVNBot14> DD/1.0ERRORReactorExceptionItem has already been added. Key in dictionary: 'watchword' Key being added: 'watchword'#commons.wikimedia [[Special:Log/upload]] upload * Lyokoï * uploaded "[[File:LL-Q150 (fra)-Lyokoï-foutre la merde.wav]]"
from labs-countervandalism-cvnbot.
Re-closing. Assumed fixed in master, but wasn't deployed yet. See #50.
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
- Rewrite in Python 3 HOT 3
- 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.