66 lines
1.8 KiB
Python
66 lines
1.8 KiB
Python
import os
|
|
import time
|
|
import requests
|
|
from datetime import datetime
|
|
# from tqdm import tqdm
|
|
|
|
ROOT = "/root/TannedCung/sbt-idp/feedback"
|
|
|
|
interval = 3
|
|
# Get the proxy URL from the environment variable
|
|
proxy_url = os.getenv('PROXY', "localhost")
|
|
|
|
# Define the login API URL
|
|
login_url = f'{proxy_url}/api/ctel/login/'
|
|
login_token = None
|
|
|
|
# Define the login credentials
|
|
login_credentials = {
|
|
'username': 'sbt',
|
|
# 'password': '7Eg4AbWIXDnufgn'
|
|
'password': 'abc'
|
|
}
|
|
|
|
# Define the command to call the update API
|
|
update_url = f'{proxy_url}/api/ctel/images/feedback_file/'
|
|
|
|
def login():
|
|
login_token = None
|
|
login_response = requests.post(login_url, data=login_credentials)
|
|
# login_response.raise_for_status()
|
|
if login_response.status_code == 200:
|
|
login_token = login_response.json()['token']
|
|
print("[INFO] relogged in at {}".format(datetime.now()))
|
|
return login_token
|
|
|
|
def feedback(login_token, file_path):
|
|
headers = {'Authorization': login_token}
|
|
files = {
|
|
'files': (file_path.split("/")[-1], open(file_path, 'rb'), 'text/csv')
|
|
}
|
|
response = requests.post(update_url, headers=headers, files=files)
|
|
|
|
if response.status_code == 200:
|
|
print('[INFO]: File uploaded successfully.')
|
|
else:
|
|
print('[ERROR]: File upload failed.')
|
|
|
|
def search_csv_files(directory):
|
|
csv_files = []
|
|
for root, dirs, files in os.walk(directory):
|
|
for file in files:
|
|
if file.endswith(".csv"):
|
|
csv_files.append(os.path.join(root, file))
|
|
|
|
csv_files.sort(key=lambda path: int(os.path.basename(os.path.dirname(path))))
|
|
return csv_files
|
|
|
|
def main():
|
|
login_token = login()
|
|
list_files = search_csv_files(ROOT)
|
|
for _file in list_files:
|
|
feedback(login_token, _file)
|
|
time.sleep(interval)
|
|
|
|
if __name__ == "__main__":
|
|
main() |