mirror of
https://gitlab.com/2-chainz/2-chainz-rest.git
synced 2025-08-02 19:41: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
|
||||
docs/_build/
|
||||
|
||||
keys.*
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
|
@@ -1 +1,3 @@
|
||||
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