File size: 3,630 Bytes
cd55e67
a0c14f1
 
 
 
 
 
 
6509820
3c2a864
6509820
a0c14f1
 
6814f98
 
 
a0c14f1
69be298
 
b7779db
a0c14f1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b94dcf8
 
2af4039
6509820
d1f4a66
 
 
 
 
 
 
 
 
 
30aaad8
b306f2e
2a8b4c0
b306f2e
52e19de
3ff67ea
 
f81fa21
b94dcf8
2af4039
81d7489
6d4e93b
5a62495
 
81d7489
3ff67ea
b306f2e
a0c14f1
 
a4a02bf
 
 
 
 
6e74e2b
6814f98
4541be9
a0c14f1
 
163719b
 
a0c14f1
 
 
 
 
525173b
5db111d
 
 
 
 
 
 
 
 
 
d075963
5db111d
 
 
 
 
a0c14f1
 
19137a2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
from flask import Flask, Response, render_template, send_file, stream_with_context, request, session, redirect, url_for
import requests
import random
import pickle as pkl
import pycountry
import datetime as dt
import pytz

app = Flask(__name__)
app.secret_key = 'green-flounder'

with open('video_dict.pkl', 'rb') as f:
    feed_dict = pkl.load(f)
    
with open('live_urls.pkl', 'rb') as f:
    live_urls = pkl.load(f)

with open('active_urls.pkl', 'rb') as f:
    live_urls = pkl.load(f)

def get_ip_info(ip_address):
    try:
        response = requests.get(f"http://ipinfo.io/{ip_address}/json")
        data = response.json()
        return data
    except Exception as e:
        return {"error": str(e)}

def latlon_to_pixel(loc):
    latitude = float(loc.split(',')[0])
    longitude = float(loc.split(',')[1])

    y = ((90-latitude)/180)
    x = ((longitude+180)/360)
    return x*100, y*100

from urllib.parse import urlparse, parse_qs

@app.route('/proxy/<path:url>')
def proxy(url):
    headers = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'en-US,en;q=0.9',
        'Cache-Control': 'max-age=0',
        'Connection': 'keep-alive',
        'Dnt': '1',
        'Upgrade-Insecure-Requests': '1',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
    }
    try:
        clean_url = url.replace('proxy/', '')
        print('Cleaned URL:', clean_url)
        
        req = requests.get(f'{clean_url}', headers=headers, stream=True, timeout=10)
        print("Status Code:", req.status_code)
        print("Response Headers:", req.headers)
        
        content_type = req.headers['content-type']
        
        return Response(req.iter_content(chunk_size=2*1024), content_type=content_type)
        
    except:
        print(f'Redirecting')
        return send_file('static/error.png', mimetype='image/png')


@app.route('/')
def index():
    if 'current_feed' in session and request.args.get('new', 'false') == 'false':
        feed = session['current_feed']
    else:
        feed = random.randint(0, len(live_urls) - 1)
        session['current_feed'] = feed
        
    #url = feed_dict[feed]['url']
    url = live_urls[feed].replace('COUNTER',str(random.randint(0,100000)))
    ip = ''.join(url.split('//')[-1]).split(':')[0]
    info = get_ip_info(ip)
    country = (pycountry.countries.get(alpha_2=info['country']).name).lower()
    name = (info['city'] + ", " + info['region'] + ", " + country).lower()
    org = info['org'].lower()
    timezone = pytz.timezone(info['timezone'])
    time = dt.datetime.now(timezone)
    loc = info['loc']
    X, Y = latlon_to_pixel(info['loc'])
    proxy_url = 'proxy/' + url
    
    loc_link = f"https://www.google.com/maps/search/{loc}"
    ip_link = url
    return render_template('index.html', 
                               name=name, 
                               url=proxy_url, 
                               info=info, 
                               country=country, 
                               time=time, 
                               ip=ip, 
                               ip_link=ip_link,
                               org=org, 
                               loc=loc, 
                               loc_link=loc_link, 
                               X=X, 
                               Y=Y)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port='7860', debug=True)