Ein Dienst, der die Codierungszeit misst, indem er ein Plug-In in jeden Editor einfügt WakaTime Ich benutze ihn seit ungefähr einem Monat, aber die Statistiken sind interessant. Es gibt also auch eine API, also ist es ein Test, alle zusammen zu twittern. Außerdem kann AWS Lambda jetzt Cron-ähnliche Dinge tun, also habe ich es auch getestet.
Der Python-Code sieht so aus.
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)
Bei der Verwendung von AWS Lambda ist zu beachten, dass Sie das Modul eines Drittanbieters an derselben Stelle wie den Code von ↑ wie "pip install python-twitter -t." Platzieren und zusammen mit ZIP hochladen müssen. Das Format von cron ist immer Es ist ein bisschen anders als das. Einfach. Einfach ohne Server.
Recommended Posts