Create two Site instances and pass in different user= parameters to the
constructor.
On Wed, Sep 7, 2022, 03:52 Erik Sommer <ersotech(a)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 <ersotech(a)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/o…
>>>
>>>
>>> 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 <ersotech(a)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 <ersotech(a)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(a)lists.wikimedia.org
>>> To unsubscribe send an email to pywikibot-leave(a)lists.wikimedia.org
>>>
>>>
>>>
>>> _______________________________________________
>>> pywikibot mailing list -- pywikibot(a)lists.wikimedia.org
>>> To unsubscribe send an email to pywikibot-leave(a)lists.wikimedia.org
>>>
>>> _______________________________________________
>>> pywikibot mailing list -- pywikibot(a)lists.wikimedia.org
>>> To unsubscribe send an email to pywikibot-leave(a)lists.wikimedia.org
>> _______________________________________________
>> pywikibot mailing list -- pywikibot(a)lists.wikimedia.org
>> To unsubscribe send an email to pywikibot-leave(a)lists.wikimedia.org
> _______________________________________________
> pywikibot mailing list -- pywikibot(a)lists.wikimedia.org
> To unsubscribe send an email to pywikibot-leave(a)lists.wikimedia.org
_______________________________________________
pywikibot mailing list -- pywikibot(a)lists.wikimedia.org
To unsubscribe send an email to pywikibot-leave(a)lists.wikimedia.org
_______________________________________________
pywikibot mailing list -- pywikibot(a)lists.wikimedia.org
To unsubscribe send an email to pywikibot-leave(a)lists.wikimedia.org
_______________________________________________
pywikibot mailing list -- pywikibot(a)lists.wikimedia.org
To unsubscribe send an email to pywikibot-leave(a)lists.wikimedia.org
_______________________________________________
pywikibot mailing list -- pywikibot(a)lists.wikimedia.org
To unsubscribe send an email to pywikibot-leave(a)lists.wikimedia.org