Un service qui mesure le temps de codage en insérant un plug-in dans chaque éditeur WakaTime Je l'utilise depuis environ un mois maintenant, mais les statistiques sont intéressantes. Donc, il y a aussi une API, donc c'est un test pour tweeter tous ensemble. De plus, AWS Lambda peut désormais faire des choses de type cron, je l'ai donc également testé.
Le code Python ressemble à ceci.
lambda_function.py
# -*- coding: utf-8 -*-
import requests
import twitter
import config
def get_stats():
headers = {'Authorization': 'Bearer ' + config.wakatime['access_token']}
return requests.get('https://wakatime.com/api/v1/users/current/stats/last_7_days', headers=headers)
def tweet(status):
api = twitter.Api(consumer_key=config.twitter['consumer_key'],
consumer_secret=config.twitter['consumer_secret'],
access_token_key=config.twitter['access_token_key'],
access_token_secret=config.twitter['access_token_secret'])
# print api.VerifyCredentials()
api.PostUpdate(status)
def make_summary(data):
total = data['human_readable_total'].replace('hours', 'h').replace('minutes', 'm')
lang_stats = map(lambda l: '{} {}%'.format(l['name'], int(round(l['percent']))), data['languages'][0:4])
return 'Last week\'s coding stats: Total {} ({}) (via @WakaTime https://wakatime.com/@Saqoosha)'.format(total, ' / '.join(lang_stats))
def lambda_handler(event, context):
result = get_stats()
print result.text
summary = make_summary(result.json()['data'])
tweet(summary)
return summary
if __name__ == '__main__':
# import json
# with open('_exp/data.json') as f:
# data = json.load(f)
# summary = make_summary(data['data'])
# print summary
lambda_handler(None, None)
Le point à noter lors de l'utilisation d'AWS Lambda est que vous devez placer le module tiers au même endroit que le code de ↑ comme pip install python-twitter -t .
et le télécharger avec ZIP, et le format de cron est toujours C'est un peu différent de celui-là. Facile. Facile à faire sans serveur.
Recommended Posts