mcm-cli 1.4.2__tar.gz → 1.5.0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {mcm_cli-1.4.2/mcm_cli.egg-info → mcm_cli-1.5.0}/PKG-INFO +1 -1
- {mcm_cli-1.4.2 → mcm_cli-1.5.0/mcm_cli.egg-info}/PKG-INFO +1 -1
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/__main__.py +1 -1
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/command/campaign.py +45 -4
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/campaign.py +1 -1
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/setup.py +1 -1
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/LICENSE +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/NOTICE +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/README.md +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcm_cli.egg-info/SOURCES.txt +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcm_cli.egg-info/dependency_links.txt +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcm_cli.egg-info/entry_points.txt +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcm_cli.egg-info/requires.txt +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcm_cli.egg-info/top_level.txt +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/__init__.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/command/account.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/command/admin.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/command/auth.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/command/config.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/command/decision.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/command/report.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/command/wallet.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/account.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/account_user.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/decision.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/error.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/item.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/item_blocking_result.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/platform_user.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/report.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/seller.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/token.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/user_join_request.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/data/wallet.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/logging.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/mcmcli/requests.py +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/setup.cfg +0 -0
- {mcm_cli-1.4.2 → mcm_cli-1.5.0}/tests/test_config.py +0 -0
@@ -37,7 +37,7 @@ def version():
|
|
37
37
|
"""
|
38
38
|
Show the tool version
|
39
39
|
"""
|
40
|
-
typer.echo(f"Version: mcm-cli v1.
|
40
|
+
typer.echo(f"Version: mcm-cli v1.5.0")
|
41
41
|
|
42
42
|
app.add_typer(mcmcli.command.account.app, name="account", help="Ad account management")
|
43
43
|
app.add_typer(mcmcli.command.admin.app, name="admin", help="Platform administration")
|
@@ -51,7 +51,7 @@ def list_campaigns(
|
|
51
51
|
print(curl)
|
52
52
|
return
|
53
53
|
if error:
|
54
|
-
print(f"ERROR: {error.message}")
|
54
|
+
print(f"ERROR: {error.message}", file=sys.stderr, flush=True)
|
55
55
|
return
|
56
56
|
if to_json:
|
57
57
|
json_dumps = [x.model_dump_json() for x in campaigns]
|
@@ -103,6 +103,47 @@ def read_campaign(
|
|
103
103
|
|
104
104
|
return
|
105
105
|
|
106
|
+
@app.command()
|
107
|
+
def archive_campaign(
|
108
|
+
account_id: str = typer.Option(help="Ad account ID"),
|
109
|
+
campaign_id: str = typer.Option(help="Campaign ID"),
|
110
|
+
profile: str = typer.Option("default", help="Profile name of the MCM CLI."),
|
111
|
+
):
|
112
|
+
"""
|
113
|
+
Turn off (pause and disable) the campaign and archive it.
|
114
|
+
"""
|
115
|
+
c = _create_campaign_command(profile)
|
116
|
+
if c is None:
|
117
|
+
return
|
118
|
+
|
119
|
+
_, error, campaign = c.read_campaign(account_id, campaign_id)
|
120
|
+
if error:
|
121
|
+
print(f"ERROR: Failed to read the campaign {campaign_id} of the ad account {account_id}: {error.message}", file=sys.stderr, flush=True)
|
122
|
+
return
|
123
|
+
|
124
|
+
if campaign.state == 'ARCHIVED':
|
125
|
+
print(f"The campaign {campaign_id} of the ad account {account_id} is already archived.")
|
126
|
+
return
|
127
|
+
|
128
|
+
# Turn off the campaign
|
129
|
+
campaign.enabling_state = 'DISABLED'
|
130
|
+
campaign.state = 'PAUSED'
|
131
|
+
#campaign.daily_budget.amount_micro = (campaign.daily_budget.amount_micro // 10000) * 10000
|
132
|
+
_, error, campaign = c.update_campaign(campaign)
|
133
|
+
if error:
|
134
|
+
print(f"ERROR: Failed to turn off the campaign {campaign_id} of the ad account {account_id}: {error.message}", file=sys.stderr, flush=True)
|
135
|
+
return
|
136
|
+
|
137
|
+
# Archive the campaign
|
138
|
+
campaign.hidden = True
|
139
|
+
campaign.state = 'ARCHIVED'
|
140
|
+
_, error, campaign = c.update_campaign(campaign)
|
141
|
+
if error:
|
142
|
+
print(f"ERROR: Failed to archive the campaign {campaign_id} of the ad account {account_id}: {error.message}", file=sys.stderr, flush=True)
|
143
|
+
return
|
144
|
+
|
145
|
+
print(f"Archived the campaign {campaign_id} of the ad account {account_id}.")
|
146
|
+
|
106
147
|
@app.command()
|
107
148
|
def list_campaign_items(
|
108
149
|
account_id: str = typer.Option(help="Ad account ID"),
|
@@ -124,7 +165,7 @@ def list_campaign_items(
|
|
124
165
|
print(curl)
|
125
166
|
return
|
126
167
|
if error:
|
127
|
-
print(f"ERROR: {error.message}")
|
168
|
+
print(f"ERROR: {error.message}", file=sys.stderr, flush=True)
|
128
169
|
return
|
129
170
|
if to_json:
|
130
171
|
json_dumps = [x.model_dump_json() for x in items]
|
@@ -156,7 +197,7 @@ def add_items_to_campaign(
|
|
156
197
|
|
157
198
|
_, error, campaign = c.read_campaign(account_id, campaign_id)
|
158
199
|
if error:
|
159
|
-
print(f"ERROR: {error.message}")
|
200
|
+
print(f"ERROR: {error.message}", file=sys.stderr, flush=True)
|
160
201
|
return
|
161
202
|
|
162
203
|
#
|
@@ -173,7 +214,7 @@ def add_items_to_campaign(
|
|
173
214
|
print(curl)
|
174
215
|
return
|
175
216
|
if error:
|
176
|
-
print(f"ERROR: {error.message}")
|
217
|
+
print(f"ERROR: {error.message}", file=sys.stderr, flush=True)
|
177
218
|
return
|
178
219
|
if to_json:
|
179
220
|
print(campaign.model_dump_json())
|
@@ -18,7 +18,7 @@ from setuptools import setup, find_packages
|
|
18
18
|
|
19
19
|
setup(
|
20
20
|
name='mcm-cli',
|
21
|
-
version='1.
|
21
|
+
version='1.5.0',
|
22
22
|
description='A command-line interface for Moloco Commerde Media',
|
23
23
|
long_description=open('README.md').read(),
|
24
24
|
long_description_content_type='text/markdown',
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|