twitchtts/build.py

53 lines
1.4 KiB
Python

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# pylint: disable=line-too-long,too-many-lines
""" buildscript """
from pprint import pprint
import time
import yaml
import requests
import PyInstaller.__main__
with open("config.yml", "r", encoding="UTF-8") as ymlfile:
cfg = yaml.load(ymlfile, Loader=yaml.Loader)
apikey = cfg['virustotal']
PyInstaller.__main__.run(['tts.py', '--onefile',])
print("Uploading file", end="")
api_endpoint = "https://www.virustotal.com/api/v3/files" # pylint: disable=invalid-name
headers = {
"Accept": "application/json",
"X-Apikey": apikey
}
files = {"file": open("./dist/tts.exe", "rb")}
req = requests.post(api_endpoint, headers=headers, files=files)
print(" [OK]")
print("Waiting for results", end="")
time.sleep(30)
print(" [OK]")
data = req.json()
api_endpoint = f"https://www.virustotal.com/api/v3/analyses/{data['data']['id']}"
headers = {
'X-Apikey': apikey
}
req = requests.get(api_endpoint, headers=headers)
data = req.json()
try:
pprint(data['data']['attributes']['results']['Microsoft'])
except KeyError:
pass
pprint(data['data']['attributes']['stats'])
print(data['data']['attributes']['status'])
print("https://www.virustotal.com/gui/file/"+str(data['meta']['file_info']['sha256']))
if data['data']['attributes']['results']['Microsoft']['category'] != "undetected":
print('FILE WILL BE DETECTED AS MALICIOUS. PLEASE RECOMPILE!')