Compare commits
15 Commits
2f10edc3f9
...
master
Author | SHA1 | Date | |
---|---|---|---|
ff1072e243 | |||
08d4d66493 | |||
5d570394c0 | |||
bb298e5f9f | |||
4a7f15b658 | |||
4102231b72 | |||
5e57fd1f8e | |||
356bbbc5c9 | |||
272ecf80a5 | |||
ffe9e86357 | |||
c8658fe6f3 | |||
717837661d | |||
9eef8155c9 | |||
5f7775cb3e | |||
f35fae26b6 |
6
.env.example
Normal file
6
.env.example
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
BOT_VERSION=3.1
|
||||||
|
BEARER_TOKEN=
|
||||||
|
ACCESS_TOKEN=
|
||||||
|
ACCESS_TOKEN_SECRET=
|
||||||
|
API_TOKEN=
|
||||||
|
API_KEY_SECRET=
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,3 +1,7 @@
|
|||||||
|
# Log Files
|
||||||
|
interaction/last_seen.txt
|
||||||
|
posting/post_log.txt
|
||||||
|
|
||||||
# ---> VSCode
|
# ---> VSCode
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ You will need to create your own `.env` files to store these values, and have mu
|
|||||||
`.env` file(s):
|
`.env` file(s):
|
||||||
|
|
||||||
```
|
```
|
||||||
BOT_VERSION=3.0
|
BOT_VERSION=3.1
|
||||||
BEARER_TOKEN=
|
BEARER_TOKEN=
|
||||||
ACCESS_TOKEN=
|
ACCESS_TOKEN=
|
||||||
ACCESS_TOKEN_SECRET=
|
ACCESS_TOKEN_SECRET=
|
||||||
|
@ -1,28 +1,30 @@
|
|||||||
version: '3.4'
|
version: '3.9'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
perseveringbot-int:
|
interaction:
|
||||||
build: ./interaction
|
build: ./interaction
|
||||||
|
container_name: vision_interaction
|
||||||
volumes:
|
volumes:
|
||||||
- ./interaction:/usr/src/app
|
- ./interaction:/usr/src/app
|
||||||
restart: always
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- BOT_VERSION=${BOT_VERSION}
|
- BOT_VERSION
|
||||||
- BEARER_TOKEN=${BEARER_TOKEN}
|
- BEARER_TOKEN
|
||||||
- ACCESS_TOKEN=${ACCESS_TOKEN}
|
- ACCESS_TOKEN
|
||||||
- ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}
|
- ACCESS_TOKEN_SECRET
|
||||||
- API_TOKEN=${API_TOKEN}
|
- API_TOKEN
|
||||||
- API_KEY_SECRET=${API_KEY_SECRET}
|
- API_KEY_SECRET
|
||||||
perseveringbot-pos:
|
|
||||||
|
posting:
|
||||||
build: ./posting
|
build: ./posting
|
||||||
|
container_name: vision_posting
|
||||||
volumes:
|
volumes:
|
||||||
- ./posting:/usr/src/app
|
- ./posting:/usr/src/app
|
||||||
restart: always
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- BOT_VERSION=${BOT_VERSION}
|
- BOT_VERSION
|
||||||
- BEARER_TOKEN=${BEARER_TOKEN}
|
- BEARER_TOKEN
|
||||||
- ACCESS_TOKEN=${ACCESS_TOKEN}
|
- ACCESS_TOKEN
|
||||||
- ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}
|
- ACCESS_TOKEN_SECRET
|
||||||
- API_TOKEN=${API_TOKEN}
|
- API_TOKEN
|
||||||
- API_KEY_SECRET=${API_KEY_SECRET}
|
- API_KEY_SECRET
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
FROM python:3.8.6-buster
|
FROM python:slim
|
||||||
COPY . /usr/src/app
|
COPY . /usr/src/app
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
RUN pip install --upgrade pip
|
RUN pip install --upgrade pip && pip install -r requirements.txt && \
|
||||||
RUN pip install -r requirements.txt
|
apt-get autoremove -y
|
||||||
CMD python3 -u ./script.py
|
CMD python3 -u ./script.py
|
@ -1 +0,0 @@
|
|||||||
1368349440298409985
|
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/local/bin/python3.8
|
#!/usr/local/bin/python3.9
|
||||||
import tweepy
|
import tweepy
|
||||||
import time
|
import time
|
||||||
import os
|
import os
|
||||||
@ -14,7 +14,10 @@ auth = tweepy.OAuthHandler(os.getenv('API_TOKEN'), os.getenv('API_KEY_SECRET'),
|
|||||||
auth.set_access_token(os.getenv('ACCESS_TOKEN'), os.getenv('ACCESS_TOKEN_SECRET'))
|
auth.set_access_token(os.getenv('ACCESS_TOKEN'), os.getenv('ACCESS_TOKEN_SECRET'))
|
||||||
|
|
||||||
api = tweepy.API(auth)
|
api = tweepy.API(auth)
|
||||||
lastSeenFile = '/usr/src/app/last_seen.txt'
|
lastSeenFile = 'last_seen.txt'
|
||||||
|
if not os.path.isfile(lastSeenFile):
|
||||||
|
with open(lastSeenFile, 'w+') as fileWrite:
|
||||||
|
fileWrite.write(str(0))
|
||||||
|
|
||||||
def getLastSeen(filename):
|
def getLastSeen(filename):
|
||||||
with open(filename, 'r') as fileRead:
|
with open(filename, 'r') as fileRead:
|
||||||
@ -29,24 +32,25 @@ def storeLastSeen(filename, lastSeen):
|
|||||||
def searchTweets(query):
|
def searchTweets(query):
|
||||||
print('Searching for tweets')
|
print('Searching for tweets')
|
||||||
lastSeen = getLastSeen(lastSeenFile)
|
lastSeen = getLastSeen(lastSeenFile)
|
||||||
tweets = api.search(query, since_id=lastSeen)
|
tweets = api.search_tweets(query, since_id=lastSeen)
|
||||||
return tweets
|
return tweets
|
||||||
|
|
||||||
def interactions():
|
def interactions():
|
||||||
tweets = searchTweets('persevering')
|
tweets = searchTweets('persevering')
|
||||||
|
if not tweets:
|
||||||
|
print('No new tweets found.')
|
||||||
|
return
|
||||||
for tweet in reversed(tweets):
|
for tweet in reversed(tweets):
|
||||||
if not tweets:
|
|
||||||
print('No new tweets found.')
|
|
||||||
return
|
|
||||||
if re.search('what is.*if not.*persevering',tweet.text.lower()):
|
if re.search('what is.*if not.*persevering',tweet.text.lower()):
|
||||||
if not tweet.text.lower().startswith('rt') and tweet.user != api.me():
|
if not tweet.text.lower().startswith('rt') and tweet.user != api.verify_credentials():
|
||||||
print(f'Tweet {tweet.text} by @{tweet.author.screen_name}', flush = True)
|
print(f'Tweet {tweet.text} by @{tweet.author.screen_name}', flush = True)
|
||||||
if not tweet.favorited:
|
t = api.get_status(tweet.id)
|
||||||
|
if not t.favorited:
|
||||||
print('Not favourited.')
|
print('Not favourited.')
|
||||||
# api.create_favorite(tweet.id)
|
api.create_favorite(tweet.id)
|
||||||
if not tweet.retweeted:
|
if not t.retweeted:
|
||||||
print('Not retweeted.')
|
print('Not retweeted.')
|
||||||
# api.retweet(tweet.id)
|
api.retweet(tweet.id)
|
||||||
storeLastSeen(lastSeenFile, tweet.id)
|
storeLastSeen(lastSeenFile, tweet.id)
|
||||||
|
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
FROM python:3.8.6-buster
|
FROM python:slim
|
||||||
COPY . /usr/src/app
|
COPY . /usr/src/app
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
RUN pip install --upgrade pip
|
RUN pip install --upgrade pip && pip install -r requirements.txt && \
|
||||||
RUN pip install -r requirements.txt
|
apt-get autoremove -y
|
||||||
RUN python -m nltk.downloader all
|
RUN python -m nltk.downloader wordnet
|
||||||
CMD python3 -u ./script.py
|
CMD python3 -u ./script.py
|
@ -1 +0,0 @@
|
|||||||
2021-03-19-00:28:14: What is artificial intelligence, if not mucopolysaccharidosis persevering?
|
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/local/bin/python3.8
|
#!/usr/local/bin/python3.9
|
||||||
import tweepy
|
import tweepy
|
||||||
import time
|
import time
|
||||||
import os
|
import os
|
||||||
@ -17,7 +17,7 @@ auth.set_access_token(os.getenv('ACCESS_TOKEN'), os.getenv('ACCESS_TOKEN_SECRET'
|
|||||||
api = tweepy.API(auth)
|
api = tweepy.API(auth)
|
||||||
|
|
||||||
def generate_words():
|
def generate_words():
|
||||||
syllables = random.randint(1,sum(1 for file in os.listdir('/usr/src/app/lists')))
|
syllables = random.randint(1,sum(1 for file in os.listdir('lists')))
|
||||||
w1 = get_word(syllables)
|
w1 = get_word(syllables)
|
||||||
w2 = get_word(syllables)
|
w2 = get_word(syllables)
|
||||||
w1_synset = wn.synsets(w1.replace(' ', '_'))[0]
|
w1_synset = wn.synsets(w1.replace(' ', '_'))[0]
|
||||||
@ -31,7 +31,7 @@ def generate_words():
|
|||||||
|
|
||||||
def get_word(syl):
|
def get_word(syl):
|
||||||
fileName = f'{syl}_syllable.txt'
|
fileName = f'{syl}_syllable.txt'
|
||||||
with open(f'/usr/src/app/lists/{fileName}', 'r') as wordList:
|
with open(f'lists/{fileName}', 'r') as wordList:
|
||||||
l = sum(1 for line in wordList) - 1
|
l = sum(1 for line in wordList) - 1
|
||||||
c = random.randint(0,l)
|
c = random.randint(0,l)
|
||||||
wordList.seek(0)
|
wordList.seek(0)
|
||||||
@ -46,10 +46,10 @@ def get_word(syl):
|
|||||||
|
|
||||||
def posting():
|
def posting():
|
||||||
words = generate_words()
|
words = generate_words()
|
||||||
output = f'What is {words[0]}, if not {words[1]} persevering?'
|
output = f'What is {words[0]} if not {words[1]} persevering?'
|
||||||
print(output)
|
print(output)
|
||||||
# api.update_status(output)
|
api.update_status(output)
|
||||||
with open('/usr/src/app/post_log.txt', 'a') as logFile:
|
with open('post_log.txt', 'a+') as logFile:
|
||||||
logFile.write(f'{datetime.now().strftime("%Y-%m-%d-%X")}: {output}\n')
|
logFile.write(f'{datetime.now().strftime("%Y-%m-%d-%X")}: {output}\n')
|
||||||
|
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
|
Loading…
Reference in New Issue
Block a user