[PYTHON] Tweet WakaTime Zusammenfassung mit AWS Lambda

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

Tweet WakaTime Zusammenfassung mit AWS Lambda
Zusammenfassung bei Verwendung von AWS Lambda (Python)
Tweet von AWS Lambda
Web Scraping mit AWS Lambda
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Poste regelmäßig mit AWS Lambda auf Twitter!
Zusammenfassung des Schreibens von AWS Lambda
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
Entwickeln, Ausführen und Bereitstellen von AWS Lambda remote mit dem Lambda-Uploader
Zusammenfassung bei Verwendung von Fabric
Überprüfen Sie types_map, wenn Sie Mimetypen mit AWS Lambda (Python) verwenden.
So konfigurieren Sie Layer auf Lambda mit AWS SAM
Ich habe versucht, mit AWS Lambda einen AMI zu erhalten
Beispiel für die Verwendung von Lambda
Probieren Sie AWS Lambda Destinations aus
Suchtpunkte beim Herunterladen von Dateien mit boto auf AWS Lambda
Erstellen Sie mit AWS SAM schnell eine API mit Python, Lambda und API Gateway
[Python] Scraping in AWS Lambda
Die einfachste AWS Lambda-Implementierung
Versuchen Sie es mit AWS SageMaker Studio
PyTorch mit AWS Lambda [Lambda-Import]
Ich habe versucht, AWS Chalice zu verwenden
Ich habe eine Instanz zu einem bestimmten Zeitpunkt mit AWS Lambda gestoppt
Ich habe Node.js und Python beim Erstellen eines Miniaturbilds mit AWS Lambda verglichen
Verwenden von PhantomJS mit AWS Lambda bis zur Anzeige des HTML-Codes der Website
[Python] Ich habe eine REST-API mit AWS API Gateway und Lambda geschrieben.