Comment configurer pywws pour poster des messages sur Twitter

Fichiers prérequis.

Postersur Twitter requière certains logiciels supplémentaires. Voir Pré-requis - Mise à jour Twitter.

Créer un compte Twitter.

Vous pouvez poster des mise à jour météo sur votre compte Twitter “normal”, mais je crois qu’il est préférable d’avoir un compte distinct réservé à vos relevés météo. Ce qui pourrait être fort utile à une personne vivant dans votre voisinage, mais ne souhaitant pas savoir ce que vous avez pris au petit déjeuner.

Autoriser pywws à poster sur votre compte Twitter.

Si vous exécutez pywws sur un appareil de faible puissance tel qu’un routeur, il peut plus simple d’exécuter cette étape d’autorisation sur un autre ordinateur en autant que python-oauth2 y est installé. Utiliser un répertoire “data” vide – un fichier weather.ini sera créé, dont le contenu pourra être copié dans votre fichier weather.ini réel en utilisant tout éditeur de texte.

Assurez vous qu’aucune autre instance de pywws ne fonctionne, puis exécutez le module TwitterAuth:

python -m pywws.TwitterAuth ~/weather/data

(Replace ~/weather/data with your data directory.)

Ceci ouvrira une fenêtre de navigation (ou vous donnera une URL à copier dans votre navigateur) où vous pourrez vous connecter à votre compte Twitter et autoriser pywws à poster. Votre navigateur vous affichera alors un nombre à 7 chiffre que vous aurez besoin de copier dans le programme TwitterAuth. Si tout s’est bien déroulé, votre fichier weather.ini devrait comporter une nouvelle section [twitter] avec les entrées secret et key. (Ne révéler à quiconque.)

Ajouter vos données de localisation (optionel).

Éditez votre fichier weather.ini et ajoutez les entrées latitude et longitude à votre section [twitter]. Par exemple:

[twitter]
secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
latitude = 51.501
longitude = -0.142

Créer un gabarit.

Les messages pour Twitter sont générés en utilisant un gabarit, tout comme sont créés les fichiers à téléverser sur votre site web. Copiez le gabarit exemple “tweet.txt” dans votre dossier de gabarit, puis testez-le:

python -m pywws.Template ~/weather/data ~/weather/templates/tweet.txt tweet.txt
cat tweet.txt

(Replace ~/weather/data and ~/weather/templates with your data and template directories.) If you need to change the template (e.g. to change the units or language used) you can edit it now or later.

Poster votre premier Tweet météo.

Maintenant tout est pret pour exécuter ToTwitter:

python -m pywws.ToTwitter ~/weather/data tweet.txt

Si celà fonctionne, Votre nouveau compte Twitter aura posté son premier relevé météo. (Vous devriez supprimer le fichier tweet.txt maintenant.)

Ajouter les envois sur Twitter à vos tâche horaire.

Éditez votre fichier weather.ini et modifiez la section [hourly]. Par exemple:

[hourly]
services = []
plot = ['7days.png.xml', '24hrs.png.xml', 'rose_12hrs.png.xml']
text = [('tweet.txt', 'T'), '24hrs.txt', '6hrs.txt', '7days.txt']

Notez l’usage de l’indicateur 'T' – ce qui indique à pywws de 'Tweeter' le résultat du gabarit au lieu de le verser sur votre site par ftp.

Vous pourriez tout aussi bien choisir de plutôt modifier les sections [logged], [12 hourly] ou [daily], mais je crois que [hourly] est le plus approprié pour les envois sur Twitter.

Modifié dans la version 13.06_r1015: added the 'T' flag. Previously Twitter templates were listed separately in twitter entries in the [hourly] and other sections. The older syntax still works, but is deprecated.

Include an image in your tweet

Nouveau dans la version 14.05.dev1216.

You can add up to four images to your tweets by specifying the image file locations in the tweet template. Make the first line of the tweet media path where path is the absolute location of the file. Repeat for any additional image files. The « tweet_media.txt » example template shows how to do this.

The image could be from a web cam, or for a weather forecast it could be an icon representing the forecast. To add a weather graph you need to make sure the graph is drawn before the tweet is sent. I do this by using two [cron xxx] sections in weather.ini:

[cron prehourly]
format = 59 * * * *
services = []
plot = [('tweet.png.xml', 'L')]
text = []

[cron hourly]
format = 0 * * * *
services = []
plot = ['7days.png.xml', '24hrs.png.xml', 'rose_12hrs.png.xml']
text = [('tweet_media.txt', 'T'), '24hrs.txt', '6hrs.txt', '7days.txt']

Commentaires et questions? SVP, abonnez-vous à la liste pywws http://groups.google.com/group/pywws et faites-vous entendre.