Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Paste
P14376
Python script to flood item IDs to test T272032
Active
Public
Actions
Authored by
Lucas_Werkmeister_WMDE
on Tue, Feb 16, 12:42 PM.
Edit Paste
Archive Paste
View Raw File
Subscribe
Mute Notifications
Award Token
Flag For Later
Tags
Wikidata
Subscribers
None
#!/usr/bin/env python3
from
getpass
import
getpass
import
json
import
mwapi
session
=
mwapi
.
Session
(
'https://test.wikidata.org'
,
user_agent
=
'test T272032 (lucas.werkmeister@wikimedia.de)'
)
lgtoken
=
session
.
get
(
action
=
'query'
,
meta
=
'tokens'
,
type
=
'login'
)[
'query'
][
'tokens'
][
'logintoken'
]
session
.
post
(
action
=
'login'
,
lgname
=
input
(
'Bot username: '
),
lgpassword
=
getpass
(
'Bot password: '
),
lgtoken
=
lgtoken
)
token
=
session
.
get
(
action
=
'query'
,
meta
=
'tokens'
)[
'query'
][
'tokens'
][
'csrftoken'
]
def
marker_item
():
return
session
.
post
(
action
=
'wbeditentity'
,
new
=
'item'
,
token
=
token
,
data
=
json
.
dumps
({
'labels'
:
{
'en'
:
{
'value'
:
'T272032 marker item'
,
'language'
:
'en'
,
},
},
}))[
'entity'
][
'id'
]
print
(
marker_item
())
error_types
=
{}
for
_
in
range
(
0
,
150
):
try
:
session
.
post
(
action
=
'wbeditentity'
,
new
=
'item'
,
token
=
token
,
data
=
json
.
dumps
({
'labels'
:
{
'nosuchlanguage'
:
'do not use this'
,
},
}))
raise
RuntimeError
(
'API request should have failed'
)
except
mwapi
.
errors
.
APIError
as
e
:
error_types
[
e
.
code
]
=
error_types
.
get
(
e
.
code
,
0
)
+
1
print
(
error_types
)
print
(
marker_item
())
Event Timeline
Lucas_Werkmeister_WMDE
created this paste.
Tue, Feb 16, 12:42 PM
2021-02-16 12:42:35 (UTC+0)
Lucas_Werkmeister_WMDE
mentioned this in
T272032: Add rate limit for creating Item IDs
.
Tue, Feb 16, 12:45 PM
2021-02-16 12:45:53 (UTC+0)
Log In to Comment