首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我已经创建了一个机器人,可以将它的照片发布到bartleby.com上,它是免费的,但我不知道是什么导致了这个问题

我已经创建了一个机器人,可以将它的照片发布到bartleby.com上,它是免费的,但我不知道是什么导致了这个问题
EN

Stack Overflow用户
提问于 2021-09-20 15:52:56
回答 1查看 0关注 0票数 0

通过我不断的工作,我能够完成很多工作,但我需要能够通过请求在网站上发布图片。我试图发布,但我的尝试不起作用。请注意,机器人的工作是通过提问将图片发布到网站上,当我在网站上发送图片时,它经常被拒绝。

代码语言:javascript
复制
import telebot
import requests
import json
import random
import os
import re
from bs4 import BeautifulSoup as s
from telebot import types
import sys
import pymongo
from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton
from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton


#point users
client2user = pymongo.MongoClient("mongodb+srv://aa:bb@cluster0.vqati.mongodb.net/a?retryWrites=true&w=majority")
mydb= client2user["a"]

mycol = mydb["users"]
allgive="0"
list = ["732140488"]
listgrop = ["-1001518151192"]
#your acouunt

payload={}
#urls need
url = "https://nk6xemh85d.execute-api.us-east-1.amazonaws.com/prod/user/qna-question"
url2limt="https://nk6xemh85d.execute-api.us-east-1.amazonaws.com/prod/user/qna-questions-limit"
emils = "https://nk6xemh85d.execute-api.us-east-1.amazonaws.com/prod/user/"
#token bot telegram
TELEGRAM_TOKEN = "1962251582:AAHDG0vmiqUIWLRLVnicHa7ZcBfLuX2OEFk"
bot = telebot.TeleBot(TELEGRAM_TOKEN, parse_mode=None)

#del users

def zro(repy_id):
    try:
        mydoc2 = mycol.find_one({ str(repy_id):str(repy_id)})
        print(mydoc2)
        print("is sub grube")
        g=[mydoc2]
        oldadd=int(g[0]['point'])
        newadd=int(g[0]['point'])
        clc=oldadd-newadd
        print("is clc sub  :"+str(clc))
        mydict77 = {  str(repy_id):str(repy_id), "point": str(clc) }
        mydict4 = { "$set":mydict77}
        mycol.update_one(mydoc2, mydict4)
        return str(clc)
    except:
        pass

#sub grupe
def sub_point(user_id):
    try:
        mydoc2 = mycol.find_one({ str(user_id):str(user_id)})
        print(mydoc2)
        print("is sub ")
        g=[mydoc2]
        oldadd=int(g[0]['point'])
        newadd=int("1")
        clc=oldadd-newadd
        print("is clc sub  :"+str(clc))
        mydict77 = {  str(user_id):str(user_id), "point": str(clc) }
        mydict4 = { "$set":mydict77}
        mycol.update_one(mydoc2, mydict4)
        return str(clc)
    except:
        pass



#add points
def add_point(repy_id ,add):
    try:
        #print("id group points :"+str(chat_id)+"and add point :"+str(add_point))
        mydoc2 = mycol.find_one({ str(repy_id):str(repy_id)})
        print(mydoc2)
        if  str(repy_id)  not in str(mydoc2):
            mydict = {  str(repy_id):str(repy_id), "point": str(add) }
            x = mycol.insert_one(mydict)
            return str(add)
        else:
            print("is old grupe")
            g=[mydoc2]
            oldadd=int(g[0]['point'])
            newadd=int(add)
            clc=oldadd+newadd
            print("is clc :"+str(clc))
            mydict77 = {  str(repy_id):str(repy_id), "point": str(clc) }
            mydict4 = { "$set":mydict77}
            mycol.update_one(mydoc2, mydict4)
            return str(clc)
    except:
        pass


##########
def gen_markup():
    markup = InlineKeyboardMarkup()
    markup.row_width = 1
    markup.add(InlineKeyboardButton("🔰More chances🔰", url="https://t.me/Taif_iraq"))
    return markup


#chuck point
def get_point(user_id):
    try:
        print("id  points :"+str(user_id))
        mydoc2 = mycol.find_one({ str(user_id):str(user_id)})
        print(mydoc2)
        if  str(user_id)  not in str(mydoc2):
            mydict = {  str(user_id):str(user_id), "point": allgive }
            x = mycol.insert_one(mydict)
            return allgive
        else:
            g=[mydoc2]
            print("user is old in file time :"+str(g[0]['point']))
            return str(g[0]['point'])
    except:
        pass

###########
def Business():
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Accounting','Management']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Economics','Marketing']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Finance','Operations-Management']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Back']])
    return keyboard
##########
def Engineering():
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Chemical-Engineering','Computer-Science']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Civil-Engineering','Electrical-Engineering']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Computer-Engineering','Mechanical-Engineering']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Back']])
    return keyboard
############
def Math():
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Algebra','Probability']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Advanced-Math','Calculus']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Statistics','Geometry','Trigonometry']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Back']])
    return keyboard


#############
def Science():
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Nursing','Physics']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Biology','Biochemistry']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Chemistry','Advanced-Physics']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Back']])
    return keyboard


#############
def Social_Science():
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Psychology','Sociology']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Back']])
    return keyboard
###################
def New_Subjects():
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Anatomy-and-Physiology','History']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Earth-Science','Geography']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Political-Science']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Back']])
    return keyboard
##############
def back():
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Business','Engineering']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Math','Science']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Social Science','New Subjects']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Exit']])
    return keyboard

#############   
def gen_markup2filed():
    keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True, one_time_keyboard=True)
    return keyboard 
#dif all subjuct
def all_subj():
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Business','Engineering']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Math','Science']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Social Science','New Subjects']])
    keyboard.add(*[types.InlineKeyboardButton(text=name,callback_data=name) for name in ['Exit']])
    return keyboard

#get text
@bot.message_handler(content_types=['text'])
def send_text(message):
    try:
        if message.text=="/get":
            user_id=message.from_user.id
            pi=get_point(user_id)
            print(pi)
            bot.send_message(message.chat.id,'Remaining  chances:'+str(pi) ,reply_to_message_id=message.message_id)
        elif message.text.startswith('/add-') and message.reply_to_message and str(message.from_user.id) in str(list):
            repy_id=message.reply_to_message.from_user.id
            string = str(message.text)
            pattern = '\d+'
            result = re.findall(pattern, string)
            print(result)
            add=str(result[0])
            asd=add_point(repy_id ,add)
            bot.send_message(message.chat.id,'chances increased:'+str(asd) ,reply_to_message_id=message.reply_to_message.message_id)
        elif message.text=="/zero" and message.reply_to_message and str(message.from_user.id) in str(list):
            repy_id=message.reply_to_message.from_user.id
            zz=zro(repy_id)
            bot.send_message(message.chat.id,'Total points have been deleted' ,reply_to_message_id=message.message_id)
    except:
        pass
#get photo from users
@bot.message_handler(content_types=['photo'])
def get_phot(message):
    user_id=message.from_user.id
    pi=get_point(user_id)
    print(pi)
    ress=int(pi)
    if ress==0 or ress<0:
        bot.send_message(message.chat.id,'تم انتهاء نقاط \npoints expired\n\nMore points contact :\n@Taif_iraq' ,reply_to_message_id=message.message_id)
    else :
        bot.send_message(message.chat.id,'------اختر القسم------',reply_markup=all_subj() ,reply_to_message_id=message.message_id)

@bot.callback_query_handler(func=lambda c:True)
def inline(c):
    if c.data == 'Business' and c.message.reply_to_message and c.message.reply_to_message.from_user.id == c.from_user.id:
        bot.edit_message_reply_markup(chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=Business())
    elif c.data == 'Engineering'and c.message.reply_to_message and c.message.reply_to_message.from_user.id == c.from_user.id:
        bot.edit_message_reply_markup(chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=Engineering())
    elif c.data == 'Math' and c.message.reply_to_message and c.message.reply_to_message.from_user.id == c.from_user.id:
        bot.edit_message_reply_markup(chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=Math())
    elif c.data == 'Science' and c.message.reply_to_message and c.message.reply_to_message.from_user.id == c.from_user.id:
        bot.edit_message_reply_markup(chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=Science())
    elif c.data == 'Social Science'  and c.message.reply_to_message and c.message.reply_to_message.from_user.id == c.from_user.id:
        bot.edit_message_reply_markup(chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=Social_Science())
    elif c.data ==  'New Subjects'  and c.message.reply_to_message and c.message.reply_to_message.from_user.id == c.from_user.id:
        bot.edit_message_reply_markup(chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=New_Subjects())
    elif  c.data == 'Back'  and c.message.reply_to_message and c.message.reply_to_message.from_user.id == c.from_user.id:
        bot.edit_message_reply_markup(chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=back())
    elif c.data == 'Exit'  and c.message.reply_to_message and c.message.reply_to_message.from_user.id == c.from_user.id:
        bot.edit_message_reply_markup(chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=gen_markup())
    else:
        print("ok")
        if c.message.reply_to_message and c.message.reply_to_message.from_user.id == c.from_user.id:
            url7 = "https://www.bartleby.com/account/settings/details"
            headers7 = {
            'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
            'Accept-Language': 'ar,en-US;q=0.7,en;q=0.3',
            'Connection': 'keep-alive',
            'Cookie': '',
            'Upgrade-Insecure-Requests': '1',
            'Sec-GPC': '1',
            'Cache-Control': 'max-age=0'}
            #requst get html from url7 to get token account
            r = requests.request("GET", url7, headers=headers7, data=payload)
            soup = s(r.content, 'html.parser')
            images4 = soup.find_all("script")
            #cut only token
            text2 = str(images4)
            start = text2.find('''accessToken''') + 14
            end = text2.find('''","refreshToken''')
            cut_text3 = text2[start:end].strip()
            print(cut_text3)
            eds=headers7
            #print(str(eds))
            text2 = str(eds)
            start = text2.find('''userId''') +7
            end = text2.find('''userStatus''')-2
            cut_text9 = text2[start:end].strip()
            #print(cut_text9)
            headers09 = {
            'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0',
            'Accept': '*/*',
            'Accept-Language': 'ar,en-US;q=0.7,en;q=0.3',
            'Referer': 'https://www.bartleby.com/',
            'authorization': 'Bearer ',
            'Origin': 'https://www.bartleby.com',
            'Connection': 'keep-alive',
            'Sec-GPC': '1',
            'Cache-Control': 'max-age=0',
            'TE': 'Trailers'
            }
            response2emal = requests.request("GET", emils+cut_text9, headers=headers09, data=payload)
            print(response2emal.text)
            #here requst uplode img
            headers9 = {'authorization': 'Bearer '+str(cut_text3)}
            o='''{"questionText":"i need the answer quickly","subjectShortName":"'''+str(c.data)+'''"}'''
            payload9={'data': str(o)}
            raw=c.message.reply_to_message.photo[-1].file_id
            path = raw + ".jpg"
            file_info = bot.get_file(raw)
            downloaded_file = bot.download_file(file_info.file_path)
            with open("img.jpg", 'wb') as new_file:
                new_file.write(downloaded_file)
                files=[('uploads',(path,open("img.jpg",'rb'),'image/png'))]
            response = requests.request("POST", url, headers=headers9, data=payload9, files=files)
            print(response.json())
            #now get limit upload account
            response4 = requests.request("GET", url2limt, headers=headers9, data=payload)
            print(response4.text)

bot.polling()

EN

回答 1

Stack Overflow用户

发布于 2021-10-02 18:30:23

您已将有效负载发送为空。可能是由于这个原因。或者这个网站可能有一个有限的问题从一个帐户张贴

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69257438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档