Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F36578546
campaignlinks.py
No One
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Authored By
Tgr
Feb 2 2023, 9:53 AM
2023-02-02 09:53:02 (UTC+0)
Size
2 KB
Referenced Files
None
Subscribers
None
campaignlinks.py
View Options
#!/usr/bin/env python
import
copy
region_names
=
{
'mena'
:
'Middle East and Africa'
,
'sa'
:
'South Asia'
,
'eseap'
:
'East, Southeast Asia, and Pacific'
,
'latam'
:
'LATAM and The Caribbean'
,
'na'
:
'United States and Canada'
,
'nwe'
:
'Northern and Western Europe'
,
'cee'
:
'CEE and Central Asia'
,
}
language_names
=
{
'en'
:
'English'
,
'sv'
:
'Swedish'
,
'it'
:
'Italian'
,
'fr'
:
'French'
,
'nl'
:
'Dutch'
,
'ja'
:
'Japanese'
,
}
wiki_regions
=
{
'sv'
:
'nwe'
,
'it'
:
'nwe'
,
'fr'
:
'nwe'
,
'nl'
:
'nwe'
,
'ja'
:
'eseap'
,
}
origin_pattern
=
{
'beta'
:
'https://{wiki}.{m}wikipedia.beta.wmflabs.org'
,
'test'
:
'https://test.{m}wikipedia.org'
,
'prod'
:
'https://{wiki}.{m}wikipedia.org'
,
}
campaign_pattern
=
'typage-{region}-{wiki}-2023'
class
Url
(
object
):
def
__init__
(
self
,
wiki
,
lang
):
self
.
wiki
=
wiki
self
.
lang
=
lang
def
site_prop
(
site
):
@property
def
prop
(
self
):
clone
=
copy
.
deepcopy
(
self
)
clone
.
site
=
site
return
clone
return
prop
def
device_prop
(
device
):
@property
def
prop
(
self
):
origin
=
origin_pattern
[
self
.
site
]
.
format
(
wiki
=
self
.
wiki
,
m
=
(
'm.'
if
device
==
'mobile'
else
''
))
campaign
=
campaign_pattern
.
format
(
region
=
wiki_regions
[
self
.
wiki
],
wiki
=
self
.
wiki
)
return
f
'{origin}/w/index.php?title=Special:CreateAccount&campaign={campaign}&uselang={self.lang}'
return
prop
beta
=
site_prop
(
'beta'
)
test
=
site_prop
(
'test'
)
prod
=
site_prop
(
'prod'
)
m
=
device_prop
(
'mobile'
)
d
=
device_prop
(
'desktop'
)
i
=
0
table
=
'|#| Region | Language | wiki project | campaign URL pattern | Beta URL | Test URL | Prod URL |
\n
'
table_row_pattern
=
'|{i}| {region} | {language} | {wiki} | {campaign} | [[{url.beta.d}|desktop]], [[{url.beta.m}|mobile]] | [[{url.test.d}|desktop]], [[{url.test.m}|mobile]] | [[{url.prod.d}|desktop]], [[{url.prod.m}|mobile]]
\n
'
for
wiki
in
[
'sv'
,
'it'
,
'fr'
,
'nl'
,
'ja'
]:
for
lang
in
[
wiki
,
'en'
]:
i
=
i
+
1
url
=
Url
(
wiki
,
lang
)
campaign
=
campaign_pattern
.
format
(
region
=
wiki_regions
[
wiki
],
wiki
=
wiki
)
table
+=
table_row_pattern
.
format
(
i
=
i
,
region
=
region_names
[
wiki_regions
[
wiki
]],
language
=
language_names
[
lang
],
wiki
=
(
wiki
+
'wiki'
),
campaign
=
campaign
,
url
=
url
)
print
(
table
)
File Metadata
Details
Attached
Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
10529085
Default Alt Text
campaignlinks.py (2 KB)
Attached To
Mode
P43576 campaignlinks.py
Attached
Detach File
Event Timeline
Log In to Comment