API Mirror

This commit is contained in:
Dylan 2022-09-01 22:33:07 +01:00
parent c58e9b2755
commit 1954a72bd0
3 changed files with 33 additions and 5 deletions

9
twExtract/Dockerfile Normal file
View File

@ -0,0 +1,9 @@
FROM public.ecr.aws/lambda/python:3.8
RUN pip install yt-dlp
# Copy function code
COPY __init__.py ${LAMBDA_TASK_ROOT}/app.py
# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile)
CMD [ "app.lambda_handler" ]

View File

@ -1,4 +1,3 @@
import imp
import yt_dlp import yt_dlp
from yt_dlp.extractor import twitter from yt_dlp.extractor import twitter
import json import json
@ -15,4 +14,16 @@ def extractStatus(url):
'include_user_entities': 0, 'include_user_entities': 0,
'tweet_mode': 'extended', 'tweet_mode': 'extended',
}) })
return status return status
def lambda_handler(event, context):
if ("queryStringParameters" not in event):
return {
"statusCode": 400,
"body": "Invalid request."
}
url = event["queryStringParameters"].get("url","")
return {
'statusCode': 200,
'body': extractStatus(url)
}

View File

@ -1,3 +1,4 @@
from random import Random, random
from weakref import finalize from weakref import finalize
from flask import Flask, render_template, request, redirect, abort, Response, send_from_directory, url_for, send_file, make_response, jsonify from flask import Flask, render_template, request, redirect, abort, Response, send_from_directory, url_for, send_file, make_response, jsonify
from flask_cors import CORS from flask_cors import CORS
@ -13,10 +14,10 @@ import combineImg
from datetime import date,datetime, timedelta from datetime import date,datetime, timedelta
from io import BytesIO from io import BytesIO
import msgs import msgs
import twExtract import twExtract as twExtract
from configHandler import config from configHandler import config
from cache import addVnfToLinkCache,getVnfFromLinkCache from cache import addVnfToLinkCache,getVnfFromLinkCache
import random
app = Flask(__name__) app = Flask(__name__)
CORS(app) CORS(app)
@ -341,7 +342,14 @@ def link_to_vnf_from_tweet_data(tweet,video_link):
def link_to_vnf_from_unofficial_api(video_link): def link_to_vnf_from_unofficial_api(video_link):
print(" ➤ [ + ] Attempting to download tweet info from UNOFFICIAL Twitter API") print(" ➤ [ + ] Attempting to download tweet info from UNOFFICIAL Twitter API")
tweet = twExtract.extractStatus(video_link) try:
tweet = twExtract.extractStatus(video_link)
except Exception as e:
print('print(" ➤ [ !!! ] Local UNOFFICIAL API Failed")')
if ('apiMirrors' in config['config'] and len(config['config']['apiMirrors']) > 0):
mirror = random.choice(config['config']['apiMirrors'])
print(" ➤ [ + ] Using API Mirror: "+mirror)
tweet = requests.get(mirror+"?url="+video_link).json()
print (" ➤ [ ✔ ] Unofficial API Success") print (" ➤ [ ✔ ] Unofficial API Success")
return link_to_vnf_from_tweet_data(tweet,video_link) return link_to_vnf_from_tweet_data(tweet,video_link)