113 lines
3.8 KiB
Python
113 lines
3.8 KiB
Python
import os
|
|
import requests
|
|
import sys, json
|
|
import random
|
|
from configs.config import tool
|
|
from helpers.vpn import connect
|
|
import logging
|
|
|
|
|
|
class hold_proxy(object):
|
|
def __init__(self):
|
|
self.proxy = os.environ.get("http_proxy")
|
|
self.logger = logging.getLogger(__name__)
|
|
|
|
def disable(self):
|
|
os.environ["http_proxy"] = ""
|
|
os.environ["HTTP_PROXY"] = ""
|
|
os.environ["https_proxy"] = ""
|
|
os.environ["HTTPS_PROXY"] = ""
|
|
|
|
def enable(self):
|
|
if self.proxy:
|
|
os.environ["http_proxy"] = self.proxy
|
|
os.environ["HTTP_PROXY"] = self.proxy
|
|
os.environ["https_proxy"] = self.proxy
|
|
os.environ["HTTPS_PROXY"] = self.proxy
|
|
|
|
|
|
class proxy_env(object):
|
|
def __init__(self, args):
|
|
self.logger = logging.getLogger(__name__)
|
|
self.args = args
|
|
self.vpn = tool().vpn()
|
|
|
|
def Load(self):
|
|
proxies = None
|
|
proxy = {}
|
|
aria2c_proxy = []
|
|
|
|
if self.vpn["proxies"]:
|
|
proxies = self.vpn["proxies"]
|
|
|
|
if not self.vpn["proxies"]:
|
|
if self.args.privtvpn:
|
|
self.logger.info("Proxy Status: Activated-PrivateVpn")
|
|
proxy.update({"port": self.vpn["private"]["port"]})
|
|
proxy.update({"user": self.vpn["private"]["email"]})
|
|
proxy.update({"pass": self.vpn["private"]["passwd"]})
|
|
|
|
if "pvdata.host" in self.args.privtvpn:
|
|
proxy.update({"host": self.args.privtvpn})
|
|
else:
|
|
proxy.update(
|
|
{"host": connect(code=self.args.privtvpn).privateVPN()}
|
|
)
|
|
|
|
proxies = self.vpn["private"]["http"].format(
|
|
email=proxy["user"],
|
|
passwd=proxy["pass"],
|
|
ip=proxy["host"],
|
|
port=proxy["port"],
|
|
)
|
|
else:
|
|
if self.args.nordvpn:
|
|
self.logger.info("Proxy Status: Activated-NordVpn")
|
|
proxy.update({"port": self.vpn["nordvpn"]["port"]})
|
|
proxy.update({"user": self.vpn["nordvpn"]["email"]})
|
|
proxy.update({"pass": self.vpn["nordvpn"]["passwd"]})
|
|
|
|
if "nordvpn.com" in self.args.nordvpn:
|
|
proxy.update({"host": self.args.nordvpn})
|
|
else:
|
|
proxy.update(
|
|
{"host": connect(code=self.args.nordvpn).nordVPN()}
|
|
)
|
|
|
|
proxies = self.vpn["nordvpn"]["http"].format(
|
|
email=proxy["user"],
|
|
passwd=proxy["pass"],
|
|
ip=proxy["host"],
|
|
port=proxy["port"],
|
|
)
|
|
else:
|
|
self.logger.info("Proxy Status: Off")
|
|
|
|
if proxy.get("host"):
|
|
aria2c_proxy.append(
|
|
"--https-proxy={}:{}".format(proxy.get("host"), proxy.get("port"))
|
|
)
|
|
if proxy.get("user"):
|
|
aria2c_proxy.append("--https-proxy-user={}".format(proxy.get("user")))
|
|
if proxy.get("pass"):
|
|
aria2c_proxy.append("--https-proxy-passwd={}".format(proxy.get("pass")))
|
|
|
|
if proxies:
|
|
os.environ["http_proxy"] = proxies
|
|
os.environ["HTTP_PROXY"] = proxies
|
|
os.environ["https_proxy"] = proxies
|
|
os.environ["HTTPS_PROXY"] = proxies
|
|
|
|
ip = None
|
|
|
|
try:
|
|
self.logger.info("Getting IP...")
|
|
r = requests.get("https://ipinfo.io/json", timeout=5)
|
|
data = r.json()
|
|
ip = f'{data["ip"]} ({data["country"]})'
|
|
except Exception as e:
|
|
self.logger.info(f"({e.__class__.__name__}: {e})")
|
|
sys.exit(1)
|
|
|
|
return aria2c_proxy, ip
|