mirror of
https://gitlab.com/2-chainz/2-chainz-rest.git
synced 2025-08-03 03:51:24 +00:00
added automatic weekly tweeting
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -69,6 +69,7 @@ instance/
|
|||||||
# Sphinx documentation
|
# Sphinx documentation
|
||||||
docs/_build/
|
docs/_build/
|
||||||
|
|
||||||
|
keys.*
|
||||||
# PyBuilder
|
# PyBuilder
|
||||||
target/
|
target/
|
||||||
|
|
||||||
|
@@ -1 +1,3 @@
|
|||||||
azure-functions
|
azure-functions
|
||||||
|
tweepy==3.8.0
|
||||||
|
requests==2.23.0
|
||||||
|
39
tweet/__init__.py
Normal file
39
tweet/__init__.py
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
import datetime
|
||||||
|
import logging
|
||||||
|
import tweepy
|
||||||
|
from tweepy import TweepError
|
||||||
|
import azure.functions as func
|
||||||
|
import requests as r
|
||||||
|
from . import keys
|
||||||
|
|
||||||
|
|
||||||
|
def main(mytimer: func.TimerRequest) -> None:
|
||||||
|
# Authenticate to Twitter
|
||||||
|
auth = tweepy.OAuthHandler(keys.keys["API"], keys.keys["API_SECRET"])
|
||||||
|
auth.set_access_token(
|
||||||
|
keys.keys["TOKEN"], keys.keys["TOKEN_SECRET"],
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create API object
|
||||||
|
api = tweepy.API(auth)
|
||||||
|
tweeted = False
|
||||||
|
tries = 0
|
||||||
|
while tweeted == False and tries < 10:
|
||||||
|
try:
|
||||||
|
quote = r.get("https://api.chainz.rest/quote").json()["quote"]
|
||||||
|
alias = r.get("https://api.chainz.rest/alias").json()["alias"]
|
||||||
|
|
||||||
|
api.update_status(status=f"{quote} - {alias}\n")
|
||||||
|
tweeted = True
|
||||||
|
except TweepError:
|
||||||
|
tries += 1
|
||||||
|
logging.warning(f"{quote} - {alias} - Has already been tweeted")
|
||||||
|
|
||||||
|
utc_timestamp = (
|
||||||
|
datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat()
|
||||||
|
)
|
||||||
|
|
||||||
|
if mytimer.past_due:
|
||||||
|
logging.info("The timer is past due!")
|
||||||
|
|
||||||
|
logging.info("Python timer trigger function ran at %s", utc_timestamp)
|
12
tweet/function.json
Normal file
12
tweet/function.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"scriptFile": "__init__.py",
|
||||||
|
"bindings": [
|
||||||
|
{
|
||||||
|
"name": "mytimer",
|
||||||
|
"type": "timerTrigger",
|
||||||
|
"direction": "in",
|
||||||
|
"schedule": "0 0 * * * 1",
|
||||||
|
"runOnStartup": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
10
tweet/readme.md
Normal file
10
tweet/readme.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
You need to add your twitter api keys to a `keys.py` file in this directory with the following format:
|
||||||
|
|
||||||
|
```python
|
||||||
|
keys = {
|
||||||
|
"API": "API_KEY_HERE",
|
||||||
|
"API_SECRET": "API_SECRET_KEY_HERE",
|
||||||
|
"TOKEN": "TOKEN_KEY_HERE",
|
||||||
|
"TOKEN_SECRET": "TOKEN_SECRET_KEY_HERE",
|
||||||
|
}
|
||||||
|
```
|
Reference in New Issue
Block a user