Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Paste
P43576
campaignlinks.py
Active
Public
Actions
Authored by
Tgr
on Feb 2 2023, 9:53 AM.
Edit Paste
Archive Paste
View Raw File
Subscribe
Mute Notifications
Award Token
Flag For Later
Tags
None
Referenced Files
F36578546: campaignlinks.py
Feb 2 2023, 9:53 AM
2023-02-02 09:53:03 (UTC+0)
Subscribers
None
#!/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
)
Event Timeline
Tgr
created this paste.
Feb 2 2023, 9:53 AM
2023-02-02 09:53:03 (UTC+0)
Tgr
mentioned this in
T321370: Thank You Pages: custom account creation pages for sv, it, ja, fr, nl
.
Log In to Comment