Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: components/ntp_snippets/remote/fetch.py

Issue 2849763003: ntp_snippets: fix ./fetch.py --short (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*- 2 # -*- coding: utf-8 -*-
3 # Copyright 2017 The Chromium Authors. All rights reserved. 3 # Copyright 2017 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """Fetches articles from the server. 7 """Fetches articles from the server.
8 8
9 Examples: 9 Examples:
10 $ fetch.py # unauthenticated, no experiments 10 $ fetch.py # unauthenticated, no experiments
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 creds = storage.get() 188 creds = storage.get()
189 if not creds or creds.invalid or creds.access_token_expired: 189 if not creds or creds.invalid or creds.access_token_expired:
190 flow = oauth2client.client.OAuth2WebServerFlow( 190 flow = oauth2client.client.OAuth2WebServerFlow(
191 client_id=client_id, client_secret=client_secret, 191 client_id=client_id, client_secret=client_secret,
192 scope=API_SCOPE) 192 scope=API_SCOPE)
193 oauth2client.tools.run_flow(flow, storage, args) 193 oauth2client.tools.run_flow(flow, storage, args)
194 creds = storage.get() 194 creds = storage.get()
195 creds.apply(headers) 195 creds.apply(headers)
196 196
197 197
198 def PrintShortResponse(r): 198 def PrintShortResponse(j):
199 now = datetime.datetime.now() 199 now = datetime.datetime.now()
200 for category in r.json()["categories"]: 200 for category in j["categories"]:
201 print("%s: " % category["localizedTitle"]) 201 print("%s: " % category["localizedTitle"])
202 for suggestion in category["suggestions"]: 202 for suggestion in category["suggestions"]:
203 attribution = suggestion["attribution"] 203 attribution = suggestion["attribution"]
204 title = suggestion["title"] 204 title = suggestion["title"]
205 full_url = suggestion["fullPageUrl"] 205 full_url = suggestion["fullPageUrl"]
206 amp_url = suggestion.get("ampUrl") 206 amp_url = suggestion.get("ampUrl")
207 creation_time = suggestion["creationTime"] 207 creation_time = suggestion["creationTime"]
208 208
209 if len(title) > 40: 209 if len(title) > 40:
210 title = textwrap.wrap(title, 40)[0] + "…" 210 title = textwrap.wrap(title, 40)[0] + "…"
211 creation_time = ParseDateTime(creation_time) 211 creation_time = ParseDateTime(creation_time)
212 age = AbbreviateDuration(now - creation_time) 212 age = AbbreviateDuration(now - creation_time)
213 213
214 print(" “%s” (%s, %s ago)" % (title, attribution, age)) 214 print(" “%s” (%s, %s ago)" % (title, attribution, age))
215 print(" " + (amp_url or full_url)) 215 print(" " + (amp_url or full_url))
216 if category["allowFetchingMoreResults"]: 216 if category["allowFetchingMoreResults"]:
217 print(" [More]") 217 print(" [More]")
218 218
219 219
220 def ParseDateTime(creation_time): 220 def ParseDateTime(creation_time):
221 try: 221 try:
222 return datetime.datetime.strptime(creation_time, "%Y-%m-%dT%H:%M:%SZ") 222 return datetime.datetime.strptime(creation_time, "%Y-%m-%dT%H:%M:%SZ")
223 except ValueError: 223 except ValueError:
224 return datetime.datetime.strptime(creation_time, "%Y-%m-%dT%H:%M:%S.%fZ") 224 return datetime.datetime.strptime(creation_time, "%Y-%m-%dT%H:%M:%S.%fZ")
225 225
226 226
227 if __name__ == "__main__": 227 if __name__ == "__main__":
228 main() 228 main()
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698