The bot edits ( https://ru.wikipedia.org/w/index.php?title=%D0%94%D0%A0%D0%90%D0%9A%D0%9E%D0%9D&diff=68780497&oldid=68066759 ) the article despite the {{nobots}} template added to the end of the article.
Description
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Invalid | None | T90422 reflinks.py ignores {{nobots}} | |||
Open | None | T104821 Load settings from site |
Event Timeline
Change 192706 had a related patch set uploaded (by Mpaa):
reflink.py: check if botMayEdit()
Yes, save should throw an exception and always check whether the edit is allowed. I thought this is already implemented. I guess in compat this works in that way.
This bug is invalid. There is no documented {{nobots}} with allow or deny arguments. See the documentation for the templates on de or en wiki.
Change 192706 abandoned by Mpaa:
page.py: fix Page.botMayEdit()
Reason:
Bug T90422 is not applicable.
Are you sure? {{nobots}} on enwp redirects to bots, which allows the parameter. And why is this bug invalid? A bot shouldn't edit the page if there is a nobots template. It doesn't matter that exactly that bot is denied. Shouldn't it deny all bots anyway.
The Russian {{nobots}} btw does not redirect to bots.
Change 192706 restored by Mpaa:
page.py: fix Page.botMayEdit()
Reason:
Keep the test part.
I dont understand why this is invalid. I think @XZise is correct in his earlier comment T90422#1070932
This is a redirect to the description page. {{nobots}} and {{bots}} doesn't have the same behaviour.
I've reproduced the problem
https://test.wikipedia.org/w/index.php?title=User:John_Vandenberg/nobots&diff=263125&oldid=212560
If {{nobots|deny=...}} is not valid syntax, for nobots, then Pywikibot should fail either with a warning or an exception. It should not silently ignore syntax it does not understand.
I disagree. Bot's {{bots}}/{{nobots}} behaviour must reflect the common use of enabling/disabling bot edits. We should not introduce a new set of templates and parameters. Others would use other templates the bot does not understand. Vice versa is the right way. Users should read the documentation before they assume any bot directives.
I agree. nobots with parameter deny should be considered unrecognised syntax/invalid/etc.
Others would use other templates the bot does not understand. Vice versa is the right way. Users should read the documentation before they assume any bot directives.
I dont understand your argument here. Templates that we dont understand are ignored.
However Pywikibot explicitly supports and implements nobots and bots. The users expect Pywikibot to do this. If Pywikibot encounters some unrecognised syntax in nobots and bots, Pywikibot must err on the side of caution; i.e. avoid editing the page. A very loud warning would be appropriate. We could also create a script that finds any pages using nobots/bots with unrecognised syntax and the script could fix the page syntax.
We could also create a script that finds any pages using nobots/bots with unrecognised syntax and the script could fix the page syntax.
We should start at ar-wiki. They try to localize that template. I am strongly against localizing bot directives. They must be a common template for all sites and projects. pywikibot is not the one and only bot framework. Ok we should have any exception handling when the template does not follow the syntax.
In addition pywikibot does not follow optout parameter for notification messages.
These improvements aren't reflinks related only.
The template title on arwiki is localized to make it easier for users to add the template in the edit window. (It is hard to write LTR text mixed with RTL text in the edit window in a wiki whose content language is RTL such as arwiki.) Also, the local naming policy states that page titles should always be in Arabic (except for a very few cases). The arwiki bots template has no parameters.
@Meno25: Anyway I guess it's a bad idea because most bot's doesn't recognize. A better solution might be adding these templates to the tool bar for the local wiki.
Since you are a Pywikibot developer, then you know better. I will move the template to its standard English name and cite your message as reason.
@darthbhyrava: I am resetting the assignee of this task because there has not been progress lately (please correct me if I am wrong!).
Resetting the assignee avoids the impression that somebody is already working on this task. It also allows others to potentially work towards fixing this task.
Please claim this task again when you plan to work on it (via Add Action... → Assign / Claim in the dropdown menu) - it would be welcome! Thanks for your understanding!