Seit dem 16. August 2018 hat sich die API von Twitter geändert und UserStream ist nicht mehr verfügbar. Daher funktioniert der unten beschriebene Quellcode nicht ordnungsgemäß. </ font> Die aktuelle Antwort ist unentschlossen, aber anstelle von Userstream Es kann sinnvoll sein, die Listen-API zu verwenden, die 900 Mal / 15 Minuten (Stand: 27. September) verwendet werden kann.
Das Vorlesen ist sogar mit dem Plug-In zum Lesen von Sticks möglich, was einfacher ist. Aber ich wusste nicht, wie ich verhindern sollte, dass RT vorgelesen wird, also schrieb ich es angemessen. ~~ Eigentlich wäre es am besten, wenn es unter Linux statt unter Windows laufen könnte ... ~~
Python-Installation http://qiita.com/t2y/items/2a3eb58103e85d8064b6
Installieren Sie Tweepy http://qiita.com/laco0416/items/f2a8928ef54626a75ae1
Für die Verwendung von tweepy ist ein Twitter-API-Schlüssel erforderlich http://phiary.me/twitter-api-key-get-how-to/
--Minan ★ SPRECHEN Installation http://publish-tool.blogspot.jp/search/label/%E6%B0%91%E5%AE%89%E2%98%85TALK
TimelineVR.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import codecs
import json
from os import path as ospath
import re
import subprocess
import tweepy
# Check Config.json
fpath = '{0}\\Config.json'.format(ospath.dirname(ospath.abspath(__file__)))
if ospath.exists(fpath):
fp = codecs.open(fpath, 'r', 'utf-8')
conf = json.load(fp)
fp.close()
else:
# Initial setting
PATH_VRX = input('Drag and Drop vrx.exe : ')
PATH_VOICEROID = input('Drag and Drop VOICEROID.exe : ')
CK = input("Input Consumer Key (API Key) : ")
CS = input("Input Consumer Secret (API Secret) : ")
AT = input("Input Access Token : ")
AS = input("Input Access Token Secret : ")
conf = {'path': {'vrx': PATH_VRX, 'voiceroid': PATH_VOICEROID},
'api': {'ck': CK, 'cs': CS, 'at': AT, 'as': AS}}
# Save to Config.json
fp = codecs.open(fpath, 'w', 'utf-8')
json.dump(conf, fp, indent=4)
fp.close()
# Call voiceroid.exe and vrx.exe
pvr = subprocess.Popen(conf['path']['voiceroid'])
pvrx = subprocess.Popen(conf['path']['vrx'])
# Set Tweepy api
auth = tweepy.OAuthHandler(conf['api']['ck'], conf['api']['cs'])
auth.set_access_token(conf['api']['at'], conf['api']['as'])
api = tweepy.API(auth)
# Override Listener
class Listener(tweepy.StreamListener):
def on_status(self, status):
# NG word
try:
for word in conf['NG']['word']:
if status.text.find(word) != -1:
return True
except KeyError:
pass
# NG client
try:
if status.source in conf['NG']['client']:
return True
except KeyError:
pass
# NG user_id
try:
if status.user.id in conf['NG']['user_id']:
return True
except KeyError:
pass
# NG user_screen_name
try:
if status.user.screen_name in conf['NG']['user_screen_name']:
return True
except KeyError:
pass
# replace Tweet text
try:
for retxt in conf['re']:
status.text = re.sub(retxt, conf['re'][retxt], status.text)
except KeyError:
pass
#Es scheint in Ordnung zu sein, weil es entkommen ist(?)
cmd = "{0} {1}Tweet.{2}".format(
conf['path']['vrx'], status.user.name, status.text)
subprocess.call(cmd)
return True
listener = Listener()
stream = tweepy.Stream(auth, listener)
try:
stream.userstream()
except:
pvr.kill()
pvrx.kill()
Config.json
{
"path": {
"vrx": "C:\\xxx\\xxx\\vrx.exe",
"voiceroid": "D:\\xxx\\xxx\\X\\VOICEROID.exe"
},
"api": {
"ck": "xxx",
"cs": "xxx",
"at": "xxx",
"as": "xxx"
},
"NG": {
"word": ["RT @"],
"client": ["Tsui verließ das Glas"],
"user_id": ["1919810", "114514"],
"user_screen_name": ["tadokoro", "kouji"]
},
"re": {
"(https?|ftp)(:\/\/[-_\\.!~*\\'()a-zA-Z0-9;\/?:\\@&=\\+\\$,%#]+)": "URL weggelassen"
}
}
Legen Sie die vorhandene Datei Config.json im selben Ordner wie TimelineVR.py ab. Wenn nicht beim Start, werden die Grundeinstellungen zum Erstellen von Config.json eingegeben.
-Zusatz des Ersatzes für reguläre Ausdrücke Durch Angabe des regulären Ausdrucks, den Sie ersetzen möchten, und der Zeichenfolge, durch die er ersetzt werden soll Sie können den Text des Tweets ersetzen. Im Beispiel wird die URL so eingestellt, dass sie als "URL weggelassen" gelesen wird.
Wenn Sie das obige Skript ausführen, wird es vorgelesen, es gibt jedoch einige Probleme.
~~ - Manchmal wird es nicht vorgelesen (es wird verbessert, wenn Sie es erneut ausführen) Nachtrag (06.02.2017): Behoben Nachtrag (14.11.2017): Wenn subprocess.Popen () verwendet wird, wird vor dem Aufruf des Prozesses zum nächsten Prozess übergegangen. Daher erscheint es wünschenswert, subprocess.call () zu verwenden. Nachtrag (14.06.2018): Der Quellcode wurde insgesamt geändert.
Am Ende ... Ich denke, es sollte gewaltsam beendet werden (angemessen)
Derzeit ist dies für Menschen, die sich nur bewegen müssen. Tatsächlich können Sie arbeiten, während Sie mit TL sprechen, sodass die von Twitter benötigte Zeit erheblich reduziert wird. ~~ Dann sollte ich Twitter stoppen ...? ~~