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 <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
<http://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
_______________________________________________
pywikibot mailing list --pywikibot(a)lists.wikimedia.org
To unsubscribe send an email topywikibot-leave(a)lists.wikimedia.org