Tweet Récapitulatif WakaTime à l'aide d'AWS Lambda

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

Tweet Récapitulatif WakaTime à l'aide d'AWS Lambda
Récapitulatif si vous utilisez AWS Lambda (Python)
Tweet d'AWS Lambda
Web scraping à l'aide d'AWS lambda
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Publiez régulièrement sur Twitter en utilisant AWS lambda!
Résumé de l'écriture d'AWS Lambda
Résumé de l'étude de Python pour utiliser AWS Lambda
Développer, exécuter et déployer AWS Lambda à distance à l'aide de lambda-uploader
Résumé lors de l'utilisation de Fabric
Vérifiez types_map lors de l'utilisation de mimetypes avec AWS Lambda (Python)
Comment configurer Layer sur Lambda à l'aide d'AWS SAM
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
Exemple d'utilisation de lambda
Essayez les destinations AWS Lambda
Points addictifs lors du téléchargement de fichiers à l'aide de boto sur AWS Lambda
Créez rapidement une API avec Python, lambda et API Gateway à l'aide d'AWS SAM
[Python] Scraping dans AWS Lambda
L'implémentation la plus simple d'AWS Lambda
Essayez d'utiliser AWS SageMaker Studio
PyTorch avec AWS Lambda [importation Lambda]
J'ai essayé d'utiliser AWS Chalice
J'ai arrêté une instance à un moment précis à l'aide d'AWS Lambda
J'ai comparé Node.js et Python lors de la création d'une miniature à l'aide d'AWS Lambda
Utilisation de PhantomJS avec AWS Lambda jusqu'à l'affichage du html du site Web
[Python] J'ai écrit une API REST en utilisant AWS API Gateway et Lambda.