Puisqu'une certaine idole ne livre pas sur niconico, la diffusion en direct est quelque peu solitaire par rapport à l'idole précédente ... → Pourquoi ne pas superposer un tweet avec une balise de hachage recommandée pour la diffusion en direct?
C'est pourquoi j'ai créé un programme en Python qui fait circuler les résultats de recherche Twitter comme un certain site vidéo.
Capturé à partir de https://www.youtube.com/watch?v=G4aogUF_M_Y.
Windows10 Python3.7.6
Puisque la "couleur -transparent color" de tkinter décrite plus tard est assez dépendante de l'environnement, elle doit être réalisée par une autre notation dans les environnements Linux et Mac. Les personnes dans ces environnements devraient rechercher Google correctement
Les spaghettis de l'âme, qui n'ont pas été proprement écrits ou élaborés, roulent ici. Je veux bien me comprendre ces jours-ci.
Inscrivez-vous avec l'API Twitter et obtenez ConsumerKey, ConsumerSecret, AccessToken, AccessTokenSecret.
Créez un cadre transparent avec tkinter
Obtenez le résultat de la recherche avec n'importe quel mot de recherche avec Tweepy et placez la chaîne de caractères du résultat obtenu avec un traitement approprié en tant que texte de Label à une certaine coordonnée.
Reproduisez le flux des commentaires en appelant récursivement le Label placé avec la coordonnée x légèrement décalée pour chaque nms.
Recherchez une ligne où le commentaire a été déplacé vers l'extérieur de l'écran à des intervalles d'environ 5 secondes et réorganisez les résultats de la recherche pour cette ligne.
(On dirait qui le lit. Mon mémorandum.)
Tout d'abord, utilisez tweepy pour le mot = input ()
approprié
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
api = tweepy.API(auth)
results=api.search(q=word,count=num_comment)
Pour voir si l'utilisateur peut utiliser l'API Twitter.
En cas d'échec, passez à reAuth ()
et entrez CK, CS, AT, AS jusqu'à ce que l'authentification soit réussie, et si elle réussit, écrivez-la dans config.ini
.
Concernant configparser
Module de gestion des fichiers de configuration dans le programme python-Comment utiliser le configparser et les précautions-
Voir.
Ensuite, générez un tkinter Frame en plein écran avec un fond transparent. La résolution de l'affichage peut être obtenue ci-dessous.
from ctypes import windll
ww=windll.user32.GetSystemMetrics(0)#width
wh=windll.user32.GetSystemMetrics(1)#height
Donnez ceci à width
, height
de ttk.Frame ()
.
Cadre transparent
Créer un cadre avec un arrière-plan transparent avec tkinter [Python]
Peut être fabriqué avec.
Je veux que les commentaires circulent sur la vidéo, donc j'ai défini root.wm_attributes (" -topmost ", True)
pour que la racine soit au premier plan.
Si le commentaire contient une URL, il sera inutilement long.
Exclure les tweets contenant des URL avec tweepy [Python]
Exclure avec ʻexURL () comme dans. De plus, si le commentaire contient un saut de ligne, l'étiquette s'étendra sur plusieurs lignes et les commentaires se chevaucheront, alors remplacez-le par
text.replace (" \ n "," ")`.
Le résultat de l'acquisition de commentaire results
est d'abord copié dans nowdatalist
, et le commentaire est mis à jour toutes les 5 secondes environ. En réécrivant l'élément de la ligne à réécrire avecget_comment ()
versresults [i]
, l'écran Les commentaires ci-dessus sont gérés par «now data list».
get_newcomment()
Une fonction qui réorganise un nouveau commentaire sur une ligne de commentaires qui a coulé hors de l'écran.
La liste «lefted» (le manque de sens à ajouter à gauche à gauche) la rend «True» lorsqu'un commentaire sort de l'écran (coordonnée x <0 d'un certain «label»).
S'il y a au moins un «True» dans «lefted» lors de l'exécution de «get_newcomment ()», appuyez sur l'API Twitter pour ce numéro pour obtenir des commentaires et les enregistrer dans «results».
En spécifiant since_id
lors de la frappe de l'API, la valeur de l'identifiant est supérieure à Tweet id. Recherches à partir d'un groupe de tweets avec un grand nombre.
De plus, selon les spécifications de l'API Twitter, vous pouvez accéder à l'API une fois toutes les 5 secondes, mais avec une marge, elle est exécutée une fois toutes les 5,05 secondes.
update_comment()
Une fonction qui réécrit réellement l'écran en fonction des résultats
obtenus par get_newcomment ()
.
ʻIf (k! = 0 et k% 2 == 0): est utilisé pour casser le commentaire acquis sans le faire passer en une seule fois. Autrement dit, deux commentaires s'écoulent par seconde. Lors de la réécriture de
label, le but est de supprimer le
label précédent en tant que
labels [i] .place_forget () . Si vous ne le faites pas, le précédent
label restera dans le
Frame`.
$pyinstaller jk.py --onefile Enfin, ce programme est converti en un fichier exe et terminé. Non seulement cela facilite l'exécution sur un PC dans un environnement non Python, Différence de comportement du cadre transparent réalisé avec tkinter dans pyinstaller [Python] C'est parce qu'il y a une raison décrite dans. Je ne pense pas à publier le fichier exe.
J'ai beaucoup étudié lors de la réalisation de ce programme, alors j'ai rédigé une note.
Créer un cadre avec un fond transparent avec tkinter [Python] Exclure les tweets contenant des URL avec tweepy [Python] Différence de comportement du cadre transparent réalisé avec tkinter dans pyinstaller [Python] Exécuter Label avec tkinter [Python]
Rendre les variables suivantes modifiables à tout moment dans l'interface graphique Indique s'il faut inclure la taille de la police, le nombre de commentaires, la longueur maximale des commentaires, la vitesse par défaut des commentaires et l'accélération par longueur de riz, URL, RT (Je ne pense pas que le mot de recherche changera autant, alors veuillez le redémarrer pour le résoudre.)
Lorsque le commentaire suivant est envoyé, si le commentaire sur une ligne s'épuise avant qu'il ne chevauche le commentaire suivant, le flux est tel que le commentaire suivant est ajouté à cette ligne pour reproduire l'originalité. → Ce n'est pas pour juger si vous êtes allé à l'extrémité gauche par (à gauche) et appuyez sur l'API pour ce numéro pour l'obtenir, mais pour obtenir num_comment tweets toutes les 5 secondes, les coordonnées actuelles de chaque ligne et v, du commentaire suivant Puisque le jugement doit être rendu en tenant compte de l'acc, le traitement peut devenir lourd. Et surtout, il semble que le code devra être considérablement réécrit. De plus, la gestion de l'axe y semble être gênante. Je suis assez satisfait du comportement actuel, donc je veux de la motivation
Lourd. Comme il est lourd, il est très difficile de voir que le traitement baisse et que la vitesse des commentaires change lorsque le nombre de caractères augmente à l'écran, je voudrais donc l'améliorer.
Recommended Posts