ben-a-c-b / app.py
alptangall's picture
Update app.py
be126a1 verified
import asyncio
import os,sys
import re,json
import discord
from discord.ext import commands, tasks
from discord import app_commands
from discord.utils import get
import random
import datetime
import server
from guild import *
from acb import *
import aiohttp
import threading
import gradio as gr
USERNAME=os.environ.get('username')
PASSWORD=os.environ.get('password')
intents = discord.Intents.default()
client = discord.Client(intents=intents)
tree = app_commands.CommandTree(client)
VIETTELS='032, 033, 034, 035, 036, 037, 038, 039, 096, 097, 098, 086'
VIETTELS=VIETTELS.split(',')
VINAPHONES=' 091, 094, 088, 081, 082, 083, 084, 085'
VINAPHONES=VINAPHONES.split(',')
VIETNAMOBILE='052, 056, 058, 092'
VIETNAMOBILE=VIETNAMOBILE.split(',')
HEADERS = []
THREADS = []
USERNAMES = []
GUILDID = 1236962671824211998
RESULT=None
def correctSingleQuoteJSON(s):
rstr = ""
escaped = False
for c in s:
if c == "'" and not escaped:
c = '"' # replace single with double quote
elif c == "'" and escaped:
rstr = rstr[:-1] # remove escape character before single quotes
elif c == '"':
c = '\\' + c # escape existing double quotes
escaped = (c == "\\") # check for an escape character
rstr += c # append the correct json
return rstr
INFO=False
BASE_URL='https://bot-py-8t7nnjtaylrcjeqj8tevuh.streamlit.app/'
@client.event
async def on_ready():
global INFO,RESULT
try:
req=requests.get('http://localhost:8888')
print(req.status_code)
print('Client closed')
sys.exit('Exited')
except Exception as error:
print(error)
server.b()
guild = client.get_guild(GUILDID)
rs=await login(USERNAME,PASSWORD)
RESULT=await getBasic(guild)
if rs:
INFO=rs
if not getTransAcb.is_running():
getTransAcb.start(guild)
@client.event
async def on_disconnect():
global RESULT
if RESULT:
acbThread=None
for thread in RESULT['banksCh'].threads:
if 'acb' in thread.name:
acbThread=thread
if acbThread:
msgs=[msg async for msg in acbThread.history()]
if len(msgs)>0:
old=re.search('.*Sessions are `(.*?)`.*',msgs[0].content).group(1)
i=int(old)-1 if int(old)>0 else 0
await msgs[0].edit(content='Sessions are `'+str(i)+'` actived')
@tasks.loop(seconds=1)
async def getTransAcb(guild):
global INFO
print('getTransAcb is running')
if INFO:
try:
rs1=await getListAccount(INFO)
for item in rs1['list']:
list=await getBalance(INFO,item['accountNumber'])
basic=await getBasic(guild)
threads=basic['acbCh'].threads+[thread async for thread in basic['acbCh'].archived_threads()]
if list:
data=list['data'][::-1]
for item in data:
applied_tags=[]
if str(item['activeDatetime']) not in str(threads):
tags=basic['acbCh'].available_tags
st=''
if item['type'].lower()=='in':
for tag in tags:
if 'in' in tag.name.lower() or 'chuyển đến' in tag.name.lower():
applied_tags.append(tag)
else:
for tag in tags:
if 'out' in tag.name.lower() or 'chuyển đi' in tag.name.lower():
applied_tags.append(tag)
if 'bankName' in item and item['bankName']!='':
st+='\nĐến ngân hàng: **'+item['bankName']+'**\n'
if 'receiverAccountNumber' in item and item['receiverAccountNumber']!='':
st+='\nĐến số tài khoản: **'+item['receiverAccountNumber']+'**'
if 'receiverName' in item and item['receiverName']!='':
st+='\nĐến chủ tài khoản: **'+item['receiverName']+'**'
allowed_mentions = discord.AllowedMentions(everyone = True)
amount=str(item['amount']).split('.')[0]
amount=[f'{cur:,}' for cur in [int(amount)]][0]
time=datetime.datetime.fromtimestamp(item['activeDatetime']/1000)
day=time.day if time.day>9 else '0'+str(time.day)
month=time.month if time.month>9 else '0'+str(time.month)
hour=time.hour if time.hour>9 else '0'+str(time.hour)
minute=time.minute if time.minute>9 else '0'+str(time.minute)
second=time.second if time.second>9 else '0'+str(time.second)
timestr=f'{day}/{month}/{time.year} {hour}:{minute}:{second}'
thread=await basic['acbCh'].create_thread(name=('+ ' if item['type'].lower()=='in' else '- ')+amount+' '+item['currency']+'/ '+str(item['activeDatetime']),content='\nSố tiền: **'+amount+' '+item['currency']+'**\nNội dung: **'+item['description']+'**\nBiến động trên STK: **'+str(item['account'])+'**\nThời điểm: **'+timestr.split(' ')[1]+'** ngày **'+timestr.split(' ')[0]+'**'+st+'\n@everyone',applied_tags =applied_tags )
else:
rs=await login(USERNAME,PASSWORD)
if rs:
INFO=rs
except Exception as error:
print(error)
rs=await login(USERNAME,PASSWORD)
if rs:
INFO=rs
def run_bot():
#client.run(DISCORD_TOKEN)
client.run(os.environ.get('bot_token'))
threading.Thread(target=run_bot).start()
"""This allows us to run the Discord bot in a Python thread"""
with gr.Blocks() as demo:
gr.Markdown("""
# Huggingbots Server
This space hosts the huggingbots discord bot.
Currently supported models are Falcon and DeepfloydIF
""")
#demo.queue(concurrency_count=100)
#demo.queue(max_size=100)
demo.launch()