All I will say is that it is the documented API [1] to use nn-default usernames, and I have used it before, years ago. If it doesn't work now it is a bug.
[1] https://github.com/wikimedia/pywikibot/blob/f57f7420edcab0980c287aaf9557edc1ea3f6e92/pywikibot/__init__.py#L1053 On Wed, Sep 7, 2022 at 10:48 AM Erik Sommer <ersot...@posteo.de> wrote: > > Not sure if this works, as I had the feeling the parameter user in the > constructor was more or less irrelevant. (Provided X Site Object got Y from > user-config.py) > > Erik > > On 07.09.22 19:52, YiFei Zhu wrote: > > Create two Site instances and pass in different user= parameters to the > constructor. > > On Wed, Sep 7, 2022, 03:52 Erik Sommer <ersot...@posteo.de> wrote: >> >> Now I don't use two accounts in the same script invocation. But I use a >> collection of scripts (self written, not part of pywikibot) and use them >> with different bot accounts. How to use different accounts in the same >> invocation, that I don't know. Can someone other help, because I see it >> similar as masti, this seems not possible anymore after the deprecation >> of sysopnames. >> >> Erik >> >> On 07.09.22 13:42, mastigm wrote: >> > how You use different configs in the same script? >> > >> > PYWIKIBOT_DIR points to one config. >> > >> > It used to be possible to specify normal and admin account in the same >> > user-config.py >> > >> > As I I understand it is not the case anymore. >> > >> > What I need is a possibility to edit with a normal bot account and, >> > for example if the page is empty delete it using bot admin account. Is >> > this possible within one config? >> > >> > PS: yes, I do have 2 bot accounts: one a normal bot and another with >> > admin rights >> > >> > masti >> > >> > >> > On 07.09.2022 08:14, Erik Sommer wrote: >> >> Thanks Johnuniq and also xqt for the good hints, >> >> >> >> at last I found my mistake. I'm operating two bot accounts at the >> >> moment. One does all the heavy lifting, but hasn't any sysop rights. >> >> The other one is for sysop actions only (was a wish by the community). >> >> >> >> The solution provided by piwikibot is to use the env >> >> variable PYWIKIBOT_DIR. I did that to point to the alternative >> >> user-config. But I made a mistake and I kid you not: A leading >> >> whitespace infront of the variable :facepalm: ... therefor the >> >> framework fall back to the normal pywikibot config path and loaded >> >> the config of the non-sysop bot :-(. >> >> >> >> Thanks to all for the help >> >> >> >> Cheers Erik >> >> >> >> On 06.09.22 11:38, Johnuniq wrote: >> >>> I upgraded all my pip modules yesterday, including pywikibot. Your >> >>> line numbers are 18 lines different from mine in _pages.py so you >> >>> might upgrade although that is unlikely to help. >> >>> >> >>> Browsing around the source shows that @need_right('protect') is in >> >>> site/_apisite.py and is responsible for the message: 'User "None" does >> >>> not have required user right "protect"'. >> >>> >> >>> site/_basesite.py returns None if self.logged_in() tests as false. My >> >>> guess is that you are not logged in and it looks like it would be easy >> >>> to stuff up Special:OAuthConsumerRegistration. I would try manually >> >>> entering lines of code into python to mimic a simple bot start-up, >> >>> then see if site.user() shows the bot name. >> >>> >> >>> On Tue, Sep 6, 2022 at 4:04 PM Erik Sommer <ersot...@posteo.de> wrote: >> >>>> This experiment was the initial reason for my post. I have one bot >> >>>> configured and I tried to protect some pages. This is stack trace from >> >>>> this experiment: >> >>>> >> >>>> File "/home/esommer/workspace/WS_THEbotIT/service/protect.py", >> >>>> line >> >>>> 47, in task >> >>>> lemma.protect(reason="Schutz fertiger Seiten", >> >>>> File >> >>>> "/home/esommer/workspace/WS_THEbotIT/venv/lib/python3.10/site-packages/pywikibot/page/_pages.py", >> >>>> >> >>>> line 1998, in protect >> >>>> self.site.protect(self, protections, reason, **kwargs) >> >>>> File >> >>>> "/home/esommer/workspace/WS_THEbotIT/venv/lib/python3.10/site-packages/pywikibot/site/_decorators.py", >> >>>> >> >>>> line 89, in callee >> >>>> raise UserRightsError('User "{}" does not have required ' >> >>>> pywikibot.exceptions.UserRightsError: User "None" does not have >> >>>> required >> >>>> user right "protect" >> >>>> >> >>>> The User "None" seems concerning. Is there a chance I screwed up the >> >>>> scopes when I generated the OAuth token at >> >>>> https://meta.wikimedia.org/wiki/Special:OAuthConsumerRegistration/propose/oauth2? >> >>>> >> >>>> >> >>>> Cheers Erik >> >>>> >> >>>> On 06.09.22 07:42, Johnuniq wrote: >> >>>>> I don't know but many years ago I ran an admin bot on a non-WMF wiki. >> >>>>> A separate sysopnames variable was used to specify a user with admin >> >>>>> credentials. Sysopnames was removed from pywikibot and whereas I've >> >>>>> never used it, the theory is that now you have only a single bot user >> >>>>> as defined in usernames. Pywikibot uses that user for normal actions >> >>>>> and for admin actions. If admin privilege is needed, I think it first >> >>>>> checks if the user has the required privilege. Some info on what I'm >> >>>>> saying is at >> >>>>> https://www.mail-archive.com/pywikibot@lists.wikimedia.org/msg00712.html >> >>>>> >> >>>>> >> >>>>> So if you had >> >>>>> usernames['wikisource']['de'] = 'Example' >> >>>>> >> >>>>> where Example has the bot and sysop flags, it should work. Try a >> >>>>> simple script to delete a junk user subpage and report what >> >>>>> happens. I >> >>>>> don't know if it's possible with MediaWiki, but it's conceivable that >> >>>>> pywikibot does not give itself admin credentials unless required >> >>>>> (which might explain your debug results). >> >>>>> >> >>>>> Johnuniq >> >>>>> >> >>>>> On Tue, Sep 6, 2022 at 3:43 AM Erik Sommer <ersot...@posteo.de> >> >>>>> wrote: >> >>>>>> No worries, >> >>>>>> >> >>>>>> I do software dev for a living. It's all local and no one is >> >>>>>> checking in credentials. But that wasn't really the question here. >> >>>>>> >> >>>>>> On 05.09.22 17:21, Roy Smith wrote: >> >>>>>> >> >>>>>> I'm a total newbie at pywikibot, but let me address the general >> >>>>>> issue of putting credentials in config files. >> >>>>>> >> >>>>>> Be very wary of how you store credentials. You should make sure >> >>>>>> they're in a file which is read-protected, and not in source >> >>>>>> control. Otherwise the entire world will have access to your >> >>>>>> secret credentials. >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> On Sep 5, 2022, at 10:14 AM, Erik Sommer <ersot...@posteo.de> wrote: >> >>>>>> >> >>>>>> Hi list, >> >>>>>> >> >>>>>> I operate currently a bot on the German Wikisource. The bot was >> >>>>>> granted both groups, admin and bot. It is intended to be used as >> >>>>>> automated protection bot. I'm having trouble to put the right >> >>>>>> credentials in my user-config.py. >> >>>>>> >> >>>>>> It is currently coded like following pseudo-code: >> >>>>>> >> >>>>>> # -*- coding: utf-8 -*- >> >>>>>> >> >>>>>> family = 'wikisource' >> >>>>>> mylang = 'de' >> >>>>>> usernames['wikisource']['de'] = '******' >> >>>>>> >> >>>>>> authenticate['de.wikisource.org'] = (....*****.....) >> >>>>>> >> >>>>>> the problem with this is that the framework only detect my bot as >> >>>>>> bot not as sysadmin. Groups taken from the debugging output: >> >>>>>> ['bot', '*', 'user', 'autoconfirmed'] >> >>>>>> >> >>>>>> What do I have to add to my config, that the bot also get picket >> >>>>>> up as sysadmin? I already read >> >>>>>> (https://www.mediawiki.org/wiki/Manual:Pywikibot/user-config.py) >> >>>>>> but doesn't make sense for me. It will not change anything if add >> >>>>>> the botname a second time to the usernames dictionary. >> >>>>>> >> >>>>>> Best Regards >> >>>>>> >> >>>>>> Erik Sommer >> >>>>>> >> >>>>>> _______________________________________________ >> >>>>>> pywikibot mailing list -- pywikibot@lists.wikimedia.org >> >>>>>> To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> _______________________________________________ >> >>>>>> pywikibot mailing list -- pywikibot@lists.wikimedia.org >> >>>>>> To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org >> >>>>>> >> >>>>>> _______________________________________________ >> >>>>>> pywikibot mailing list -- pywikibot@lists.wikimedia.org >> >>>>>> To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org >> >>>>> _______________________________________________ >> >>>>> pywikibot mailing list -- pywikibot@lists.wikimedia.org >> >>>>> To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org >> >>>> _______________________________________________ >> >>>> pywikibot mailing list -- pywikibot@lists.wikimedia.org >> >>>> To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org >> >>> _______________________________________________ >> >>> pywikibot mailing list -- pywikibot@lists.wikimedia.org >> >>> To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org >> >> _______________________________________________ >> >> pywikibot mailing list -- pywikibot@lists.wikimedia.org >> >> To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org >> > _______________________________________________ >> > pywikibot mailing list -- pywikibot@lists.wikimedia.org >> > To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org >> _______________________________________________ >> pywikibot mailing list -- pywikibot@lists.wikimedia.org >> To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org > > > _______________________________________________ > pywikibot mailing list -- pywikibot@lists.wikimedia.org > To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org > > _______________________________________________ > pywikibot mailing list -- pywikibot@lists.wikimedia.org > To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org _______________________________________________ pywikibot mailing list -- pywikibot@lists.wikimedia.org To unsubscribe send an email to pywikibot-le...@lists.wikimedia.org