コード例 #1
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)

        self.ui()
        self.widgetList = []
        self.nuberOfCall = 0
        self.parent = parent
        requester = HRequester()
        postRequester = HPostRequester()

        self.closeBtn.clicked.connect(lambda: self.parent.widgetsConductor(self, delete=True))
        self.btn_unsubscribeEverything.clicked.connect(self.unsubscribeEverything)
        self.btn_resevedOneFriend.clicked.connect(self.resevedOneFriend)

        chil = [item for item in self.parent.itemList if item.b.checkState() == 2 and item.frozen == 0]

        for item in chil:
            getUrl = UrlAPI(item.token)
            postRequester(getUrl.execute(), item.session, item, data={'code': self.getCode()})

        response = postRequester.request()
        response.sort(key=lambda r: json.loads(r[0].text)['response'][0]['count'])

        for r in response:
            j = json.loads(r[0].text)['response']
            item = r[2][0]
            masSended = [sended for sended in j[1]['items']]
            masReceived = [received for received in j[2]['items']]

            self.addAccaunt(item, str(j[0]['count']), str(j[1]['count']), str(j[2]['count']), masSended, masReceived)

        self.parent.statusBar.showMessage(
            'Загруженно акков ' + str(len(response)) + '/' + str(len(chil)))
コード例 #2
0
    def addFriends(self):
        requester = HRequester()

        for item in self.chil:
            getUrl = UrlAPI(item.token)
            requester(getUrl.friends.getRequests(count=1000, out=0), item.session, item)

        response = requester.request()

        for r in response:

            try:
                j = json.loads(r[0].text)['response']
                item = r[2][0]
                masReceived = [received for received in j['items']]
                self.listRecived.append([item, masReceived])
            except Exception as e:
                print(e)

        widgetList = [w for w in self.listRecived if len(w[1]) > 0]

        for w in widgetList:
            item, masReceived = w
            getUrl = UrlAPI(item.token)
            added_user_id = self.getAddedUser(masReceived)

            if added_user_id != None:
                requester(getUrl.friends.add(user_id=added_user_id), item.session)

        requester.request()
コード例 #3
0
    def getPhotos(self):
        photosList = []

        for mas in self.masSessions:
            session, token, user_id = mas
            getUrl = UrlAPI(token)

            # get upload url for photos
            for imgByte in self.byteImgMas:
                editImg = self.editPhoto(imgByte)
                urlUpload = getUrl.photos.getWallUploadServer()
                self.requester(urlUpload, session, editImg)

        urlResponse = self.requester.request()

        for ur in urlResponse:
            print(ur[0].text)
            img = ur[2][0]
            session = ur[1]
            session.headers.update(Accept='multipart/form-data')
            data = json.loads(ur[0].text)
            url = data['response']['upload_url']
            user_id = data['response']['user_id']
            self.postRequester(url,
                               session,
                               user_id,
                               files={'photo': ('image.jpg', img)})

        postResponse = self.postRequester.request()

        for pr in postResponse:
            print(pr[0].text, pr[2][0])
            dataPost = json.loads(pr[0].text)
            session = pr[1]
            user_id = pr[2][0]
            server = dataPost['server']
            photo = dataPost['photo']
            hash = dataPost['hash']

            for item in self.masSessions:
                if item[0] == session:
                    getUrl = UrlAPI(item[1])
                    saveUrl = getUrl.photos.saveWallPhoto(server=server,
                                                          photo=photo,
                                                          hash=hash)
                    self.requester(saveUrl, session, user_id)

        saveResponse = self.requester.request()
        for r in saveResponse:
            print(r[0].text, 'save')
            user_id = r[2][0]
            session = r[1]
            data = json.loads(r[0].text)
            photo_id = data['response'][0]['id']
            photo = 'photo' + str(user_id) + '_' + str(photo_id)

            photosList.append([session, photo])

        return photosList
コード例 #4
0
    def resevedOneFriend(self):
        requester = HRequester()
        countCaptcha = 0
        countLimitRequests = 0
        countSuccessfully = 0

        widgetList = [w for w in self.widgetList if len(w.masReceived) > 0]

        for w in widgetList:
            getUrl = UrlAPI(w.item.token)
            added_user_id = w.masReceived.pop(0)

            requester(getUrl.friends.add(user_id=added_user_id), w.item.session, w, added_user_id)

        response = requester.request()
        for r in response:
            w = r[2][0]
            added_user_id = r[2][1]
            j = json.loads(r[0].text)

            if 'error' in j:

                if j['error']['error_code'] == 14:
                    countCaptcha += 1

                elif j['error']['error_code'] == 6:
                    countLimitRequests += 1

                elif j['error']['error_code'] == 177:
                    getUrl = UrlAPI(w.item.token)
                    rDel = w.item.session.get(getUrl.friends.delete(user_id=added_user_id),
                                              proxies=w.item.session.proxies)
                    countSuccessfully += 1

                else:
                    print(j)

            elif 'response' in j:

                if j['response'] > 1:
                    countSuccessfully += 1
                    w.countReceivedRequests.setText(str(int(w.countReceivedRequests.text()) - 1))

                else:
                    print(j)

            else:
                print(j)

        if countSuccessfully / len(response) == 1:
            self.parent.statusBar.showMessage('Успешно добавлено у всех')
            print('Успешно добавлено у всех')
        else:
            self.parent.statusBar.showMessage('Кол-во успешных:' + str(countSuccessfully) + ' Кол-во капч:' + str(
                countCaptcha) + ' Кол-во лимитов:' + str(countLimitRequests))
            print('Кол-во успешных:' + str(countSuccessfully) + ' Кол-во капч:' + str(
                countCaptcha) + ' Кол-во лимитов:' + str(countLimitRequests))
コード例 #5
0
ファイル: main.py プロジェクト: BingoTra/HearSheeps
    def chekAcc(self):
        errorListAcc = []
        requester = HRequester()
        chil = [
            item for item in self.itemList
            if item.b.checkState() == 2 and item.frozen == 0
        ]

        for acc in chil:
            getUrl = UrlAPI(acc.token)

            requester(getUrl.account.setOnline(), acc.session, acc)

        requests = requester.request()
        for r in requests:
            acc = r[2][0]
            j = json.loads(r[0].text)

            if 'response' in j:

                if j['response'] == 1:
                    pass
                else:
                    print(j)
                    return

            elif 'error' in j:
                acc.responseError = j
                errorListAcc.append(acc)

        if len(errorListAcc) == 0:
            self.statusBar.showMessage('Обновленно')
        else:
            self.widgetsConductor(SurveyForm(self, errorListAcc), show=True)
コード例 #6
0
    def createChat(self):
        getUrl = UrlAPI(self.token)
        response = self.session.get(getUrl.messages.createChat(title='Читаем стихи'), proxies=self.session.proxies)
        jResponse = json.loads(response.text)

        if 'response' in jResponse:
            chat_id = jResponse['response']
            peer_id = 2000000000 + chat_id

            res = self.session.get(getUrl.messages.getInviteLink(peer_id=peer_id), proxies=self.session.proxies)
            jRes = json.loads(res.text)['response']
            invite_link = jRes['link']

            os.chdir('/root/PycharmProjects/HearSheep')
            con = sql.connect(os.getcwd() + '/db/db.sqlite3')
            cur = con.cursor()

            with con:
                cur.execute('INSERT INTO chat(number_chat,count_users,invite_link) VALUES (NULL,1,?)', (invite_link, ))
                cur.execute('SELECT number_chat FROM chat WHERE invite_link=?', (invite_link, ))
                row = cur.fetchone()
                number_chat = row[0]
                cur.execute('INSERT INTO accaunt_chat(user_id,chat_id,number_chat) VALUES (?,?,?)', (self.user_id, chat_id, number_chat))

            con.close()
            print('the chat created')
            return True

        print("the chat don't created")
        return False
コード例 #7
0
    def sendLike(self, post_str):
        error = []
        atLeastOneRepost = False

        for acc in self.chil:
            owner_id, item_id = post_str.strip('wall').split('_')
            getUrl = UrlAPI(acc.token)
            url = getUrl.likes.add(type='post',
                                   owner_id=owner_id,
                                   item_id=item_id)
            self.requester(url, acc.session, acc.user_id)

        response = self.requester.request()
        for item in response:
            user_id = item[2][0]
            res = json.loads(item[0].text)

            if 'response' in res and 'likes' in res['response']:
                atLeastOneRepost = True
            else:
                if 'error' in res:
                    error.append([res, user_id])
                else:
                    error.append([res, user_id])

        if atLeastOneRepost == True:
            print('Лайки поставлены')

        if len(error) == 0:
            print('Все лайки поставлены удачно')
        else:
            [print(i) for i in error]

        self.signalComplete.emit('reposts')
コード例 #8
0
    def addGroup(self, group_list):
        error = []

        for group in group_list:

            for acc in self.chil:
                getUrl = UrlAPI(acc.token)
                url = getUrl.groups.join(group_id=group)
                self.requester(url, acc.session, acc)

        response = self.requester.request()
        for item in response:
            acc = item[2][0]

            try:
                res = json.loads(item[0].text)
                if res['response'] == 1:
                    pass

                else:
                    error.append([res, acc.user_id])

            except:
                error.append([item[0].text, acc.user_id])

        if len(error) == 0:
            print('Все группы добавленны удачно')
        else:
            [print(i) for i in error]

        self.signalComplete.emit('groups added')
コード例 #9
0
    def specificRecord(self):
        errorListAcc = []

        for i in range(self.lenght):
            getUrl = UrlAPI(self.chil[i].token)
            urlLikeAdd = getUrl.likes.add(type=self.lineType.text(),
                                          owner_id=self.lineEditOwner.text(),
                                          item_id=self.lineEditItem.text())
            self.requester(urlLikeAdd, self.chil[i].session, self.chil[i])

        response = self.requester.request()
        for r in response:
            acc = r[2][0]
            j = json.loads(r[0].text)

            if 'response' in j:

                if j['response'] == 1:
                    pass
                else:
                    print(j)

            elif 'error' in j:
                print(j)
                acc.responseError = j
                errorListAcc.append(acc)

        if len(errorListAcc) == 0:
            self.parent.statusBar.showMessage('Лайки поставлены')
        else:
            self.parent.statusBar.showMessage('Лайки поставлены с ошибками')
            self.parent.widgetsConductor(SurveyForm(self.parent, errorListAcc),
                                         show=True)
コード例 #10
0
    def filing(self):
        requester = HRequester()

        for acc in self.chil:
            getUrl = UrlAPI(acc.token)

            urlAvatars = getUrl.users.get(fields='photo_200')
            requester(urlAvatars, acc.session, acc)

        response = requester.request()

        for r in response:
            acc = r[2][0]

            try:
                dataAvatars = json.loads(r[0].text)['response'][0]

                if dataAvatars[
                        'photo_200'] != 'https://vk.com/images/camera_200.png':
                    requester(dataAvatars['photo_200'], acc.session, acc)
                else:
                    photo = Photo(self, None, acc)
                    self.mainLayout.addWidget(photo, alignment=Qt.AlignLeft)

            except Exception as e:
                print(repr(e))

        response = requester.request()

        for r in response:
            acc = r[2][0]
            photoByte = r[0]
            photo = Photo(self, photoByte, acc)
            self.mainLayout.addWidget(photo, alignment=Qt.AlignLeft)
コード例 #11
0
    def sendPost(self):

        photosList = self.getPhotos()

        for item in self.masSessions:
            session, token, user_id = item
            photos = ','
            masP = []

            for photo in photosList:

                if session == photo[0]:
                    masP.append(photo[1])

            getUrl = UrlAPI(token)

            if self.linePost.text() == '':
                url = getUrl.wall.post(attachments=photos.join(masP))
                self.requester(url, session)
            else:
                url = getUrl.wall.post(message=self.linePost.text(),
                                       attachments=photos.join(masP))
                self.requester(url, session)

        response = self.requester.request()
        for r in response:
            print(r[0].text)

        print('Кол-во акков', len(self.masSessions), 'Ответов сервера:',
              len(response))
コード例 #12
0
ファイル: allPostForm.py プロジェクト: BingoTra/HearSheeps
    def getDataWall(self, acc, offset, count):
        print('getData Wall')
        getUrl = UrlAPI(acc.token)
        url = getUrl.wall.get(extended=1, count=count, offset=offset)

        def dowload():
            print('dowmload')
            try:
                response = requests.get(url, proxies=acc.session.proxies)
                return response
            except requests.exceptions.ProxyError as e:
                print(repr(e))
                return dowload()
            except requests.exceptions.Timeout as e:
                print(repr(e))
                return dowload()
            except requests.exceptions.ConnectionError as e:
                print(e)
                return None

        response = dowload()

        if response:
            print('if response')
            dataWall = json.loads(response.text)

            if 'response' in dataWall:
                # self.gui.createRecords(acc, dataWall['response'])
                self.signal.emit(acc, dataWall['response'])
        else:
            print(response)
コード例 #13
0
    def sendRequest(self):
        getUrl = UrlAPI(self.item.token)
        requester = HRequester()

        for i in range(3):
            user = random.choice(self.parent.members['items'])
            requester(getUrl.friends.add(user_id=user['id']), self.item.session)

        response = requester.request()
        for r in response:
            j = json.loads(r[0].text)

            if 'error' in j:

                if j['error']['error_code'] == 14:
                    print('КАПЧА-----')
                else:
                    print(j)

            elif 'response' in j:

                if j['response'] == 1:
                    print('Запрос отправлен')
                    self.countSendedRequests.setText(str(int(self.countSendedRequests.text()) + 1))
                else:
                    print(j)

            else:
                print(j)
コード例 #14
0
    def sendComment(self, group_id, post_id, comment_text):
        error = []

        for acc in self.chil:
            getUrl = UrlAPI(acc.token)
            url = getUrl.wall.createComment(owner_id=group_id,
                                            post_id=post_id,
                                            message=comment_text)
            self.requester(url, acc.session, acc)

        response = self.requester.request()
        for item in response:
            acc = item[2][0]

            try:
                res = json.loads(item[0].text)
                if 'comment_id' in res['response']:
                    pass

                else:
                    error.append([res, acc.user_id])

            except:
                error.append([item[0].text, acc.user_id])

        if len(error) == 0:
            print('All comments send')
        else:
            [print(i) for i in error]

        self.signalComplete.emit('comment')
コード例 #15
0
    def lineRepostDownload(self):
        self.group_list_repost = []

        post_str = self.gui.lineRepost.text().strip('https://vk.com/wall')

        requester = HRequester()
        acc = random.choice(self.chil)
        getUrl = UrlAPI(acc.token)
        url = getUrl.wall.getById(posts=post_str, extended=1)
        requester(url, acc.session)

        response = requester.request()

        for r in response:

            try:
                j = json.loads(r[0].text)
            except:
                continue

            if 'response' in j:

                for group in j['response']['groups']:
                    self.group_list_repost.append(group['id'])

                self.signal.emit()
            else:
                print(j)
コード例 #16
0
 def __init__(self, name, token, session):
     self.name = name
     self.timeout = 0
     self.interval1 = 75
     self.interval2 = 95
     self.session = session
     self.getUrl = UrlAPI(token)
     self.requester = HRequester()
     self.photoIdsList = []
コード例 #17
0
ファイル: main.py プロジェクト: BingoTra/HearSheeps
    def refreshName(self):
        errorListAcc = []
        requester = HRequester()
        chil = [(item.session, item.token, item.user_id)
                for item in self.itemList
                if item.b.checkState() == 2 and item.frozen == 0]
        error = 0

        for acc in chil:
            session = acc[0]
            token = acc[1]
            user_id = acc[2]
            getUrl = UrlAPI(token)

            requester(getUrl.account.getProfileInfo(), session, user_id)

        with self.con:
            cur = self.con.cursor()
            cur.execute("SELECT name, last_name, user_id FROM accaunt")
            rows = cur.fetchall()

        requests = requester.request()
        for r in requests:
            user_id1 = r[2][0]
            j = json.loads(r[0].text)

            if 'response' in j:
                name = j['response']['first_name']
                lastName = j['response']['last_name']

                nameG, lastNameG, user_idG = [
                    m for m in rows if user_id1 == m[2]
                ].pop()

                if name == nameG and lastName == lastNameG:
                    pass
                else:
                    with self.con:
                        cur = self.con.cursor()
                        cur.execute(
                            "UPDATE accaunt SET name=?, last_name=? WHERE user_id=?",
                            (name, lastName, user_id1))
                        self.con.commit()

            elif 'error' in j:
                error += 1
                acc.responseError = j
                errorListAcc.append(acc)

        if error == 0:
            self.statusBar.showMessage('Обновленно')
        else:
            self.statusBar.showMessage('Обновленно. Проблемных аккаунтов:' +
                                       str(error))
            self.widgetsConductor(SurveyForm(self, errorListAcc), show=True)
コード例 #18
0
ファイル: main.py プロジェクト: BingoTra/HearSheeps
    def addVideo(self):
        requester = HRequester()
        chil = [
            item for item in self.itemList
            if item.b.checkState() == 2 and item.frozen == 0
        ]
        randomAcc = random.choice(chil)
        getMainUrl = UrlAPI(randomAcc.token)

        responseMain = requests.get(getMainUrl.video.get(owner_id='-29573241',
                                                         count=5),
                                    proxies=randomAcc.session.proxies)
        responseJson = json.loads(responseMain.text)['response']['items']

        for video in responseJson:
            owner_id = video['owner_id']
            video_id = video['id']

            for acc in chil:
                getUrl = UrlAPI(acc.token)
                requester(
                    getUrl.video.add(video_id=video_id, owner_id=owner_id),
                    acc.session, acc.user_id)

            responseAdd = requester.request()

            for r in responseAdd:
                j = json.loads(r[0].text)
                user_id = r[2][0]

                if 'response' in j:
                    if j['response'] == 1:
                        pass
                    else:
                        print('Не добавленно', user_id, r[0].text)

                else:
                    print('Ошибка', user_id, r[0].text)

        print('----------')
コード例 #19
0
    def unsubscribeEverything(self):
        requester = HRequester()
        countCaptcha = 0
        countLimitRequests = 0
        countSuccessfully = 0

        for w in self.widgetList:
            getUrl = UrlAPI(w.item.token)

            for i in range(5):
                try:
                    user = w.masSended.pop(0)
                    requester(getUrl.friends.delete(user_id=user), w.item.session, w)
                except:
                    break

        response = requester.request()
        for r in response:
            w = r[2][0]
            j = json.loads(r[0].text)

            if 'error' in j:

                if j['error']['error_code'] == 14:
                    countCaptcha += 1

                elif j['error']['error_code'] == 6:
                    countLimitRequests += 1

                else:
                    print(j)

            elif 'response' in j:

                if j['response']['success'] == 1:
                    countSuccessfully += 1
                    w.countSendedRequests.setText(str(int(w.countSendedRequests.text()) - 1))

                else:
                    print(j)

            else:
                print(j)

        if countSuccessfully / len(response) == 1:
            self.parent.statusBar.showMessage('Успешно удалено у всех')
            print('Успешно удалено у всех')
        else:
            self.parent.statusBar.showMessage('Кол-во успешных:' + str(countSuccessfully) + ' Кол-во капч:' + str(
                countCaptcha) + ' Кол-во лимитов:' + str(countLimitRequests))
            print('Кол-во успешных:' + str(countSuccessfully) + ' Кол-во капч:' + str(
                countCaptcha) + ' Кол-во лимитов:' + str(countLimitRequests))
コード例 #20
0
    def getInfoMembers(self):
        members = []

        for i in range(0, divmod(len(self.mas_ids), 5000)[0] + 1):
            code = 'var mas = [];'

            for j in range(10):
                line = self.getLine(j)

                if line == '''var friends'''+ str(j) +''' = API.users.get({"user_ids":"","fields":"photo_id,online"});''':
                    break
                else:
                    code += line + 'mas = mas + friends' + str(j) + ';'

            code += '''return mas;'''

            print(code)

            random_chil = random.choice(self.chil)

            session = random_chil.session
            getUrl = UrlAPI(random_chil.token)
            self.postRequester(getUrl.execute(), session, 'null', data={'code': code})

            response = self.postRequester.request()
            for r in response:
                print(r[0].text)
                j = json.loads(r[0].text)
                print(len(j['response']))

                [members.append(user) for user in j['response']]

        print(len(members))

        if self.checkBoxOnline.checkState() == 2:
            members = [user for user in members if user['online'] == 1]

        return members
コード例 #21
0
ファイル: editInfoWidget.py プロジェクト: BingoTra/HearSheeps
    def save(self):
        requester = HRequester()
        dic = {}

        if self.lineName.text() == '':
            pass
        else:
            dic.update(first_name=self.lineName.text())

        if self.lineLastName.text() == '':
            pass
        else:
            dic.update(last_name=self.lineLastName.text())

        if self.lineBD.text() == '':
            pass
        else:
            dic.update(bdate=self.lineBD.text())

        if self.lineCityId.text() == '':
            pass
        else:
            dic.update(city_id=self.lineCityId.text())

        if self.lineStatus.text() == '':
            pass
        else:
            dic.update(status=self.lineStatus.text())

        if self.lineVisibleBD.checkState() == 2:
            dic.update(bdate_visibility=1)
        else:
            dic.update(bdate_visibility=0)

        for acc in self.chil:
            getUrl = UrlAPI(acc.token)

            # Close coments under wall post and display walls record
            url1 = getUrl.account.setInfo(name='own_posts_default', value=0)
            url2 = getUrl.account.setInfo(name='no_wall_replies', value=1)

            requester(url1, acc.session)
            requester(url2, acc.session)
            requester(getUrl.account.saveProfileInfo(**dic), acc.session)

        response = requester.request()
        for r in response:
            j = json.loads(r[0].text)

            print(j)
コード例 #22
0
    def mouseDoubleClickEvent(self, QMouseEvent):
        requester = HRequester()
        getUrl = UrlAPI(self.acc.token)

        requester(getUrl.photos.delete(photo_id=self.id), self.acc.session)
        response = requester.request()

        for r in response:
            j = json.loads(r[0].text)

            try:
                if j['response'] == 1:
                    self.deleteLater()
            except Exception as e:
                print(repr(e))
コード例 #23
0
    def numRecord(self):

        for item in self.chil:
            getUrl = UrlAPI(item.token)
            self.requester(
                getUrl.wall.get(count=1, offset=self.line_numberRevord.text()),
                item.session, item)

        response = self.requester.request()
        for r in response:
            record = json.loads(r[0].text)['response']['items'][0]
            acc = r[2][0]
            acc.item_id = record['id']

        self.run('post')
コード例 #24
0
    def __init__(self,
                 parent=None,
                 session=None,
                 token=None,
                 dataAllPhotos=None):
        super().__init__(parent, Qt.Window)

        self.session = session
        self.token = token
        self.dataAllPhotos = dataAllPhotos
        self.createApi = UrlAPI(self.token)
        self.api = API(self.session, self.token)

        self.ui()
        self.filing()
        self.show()
コード例 #25
0
    def mouseDoubleClickEvent(self, QMouseEvent):
        requester = HRequester()
        getUrl = UrlAPI(self.acc.token)

        requester(getUrl.photos.deleteAlbum(album_id=self.albumId),
                  self.acc.session)
        response = requester.request()

        for r in response:
            j = json.loads(r[0].text)

            try:
                if j['response'] == 1:
                    self.deleteLater()
            except KeyError:
                print(KeyError, 'Ошибка удаления альбома', r[0])
コード例 #26
0
ファイル: allPostForm.py プロジェクト: BingoTra/HearSheeps
    def deleteAll(self):
        requester = HRequester()

        for post in self.gui.allPost:
            getUrl = UrlAPI(post.token)
            requester(getUrl.wall.delete(post_id=post.post_id), post.session,
                      post)

        response = requester.request()
        for r in response:
            j = json.loads(r[0].text)
            post = r[2][0]

            if j['response'] == 1:
                post.deleteLater()
            else:
                print('Error Response by delete post', r[0].text)
コード例 #27
0
    def sendRequestEverything(self):
        requester = HRequester()
        countCaptcha = 0
        countSuccessfully = 0

        for w in self.widgetList:
            getUrl = UrlAPI(w.item.token)

            for i in range(3):
                user = random.choice(self.members['items'])
                requester(getUrl.friends.add(user_id=user['id']), w.item.session, w)

        response = requester.request()
        for r in response:
            w = r[2][0]
            j = json.loads(r[0].text)

            if 'error' in j:

                if j['error']['error_code'] == 14:
                    countCaptcha += 1
                else:
                    print(j)

            elif 'response' in j:

                if j['response'] == 1:
                    countSuccessfully += 1
                    w.countSendedRequests.setText(str(int(w.countSendedRequests.text()) + 1))

                elif j['response'] == 2:
                    print('Добавлен ранее')

                else:
                    print(j)

            else:
                print(j)

        if countSuccessfully / len(self.widgetList) == 3:
            self.parent.statusBar.showMessage('Успешно отправлено у всех')
            print('Успешно отправлено у всех')
        else:
            self.parent.statusBar.showMessage(
                'Кол-во успешных:' + str(countSuccessfully) + ' Кол-во капч:' + str(countCaptcha))
            print('Кол-во успешных:' + str(countSuccessfully) + ' Кол-во капч:' + str(countCaptcha))
コード例 #28
0
    def sendRepost(self, post_str):
        error = []
        atLeastOneRepost = False
        con = sql.connect('db/db.sqlite3')
        cur = con.cursor()
        group_post_id = post_str.strip('wall')

        for acc in self.chil:
            getUrl = UrlAPI(acc.token)
            url = getUrl.wall.repost(object=post_str)
            self.requester(url, acc.session, acc.user_id)

        response = self.requester.request()
        for item in response:
            user_id = item[2][0]
            res = json.loads(item[0].text)

            if 'response' in res and 'success' in res['response']:

                post_id = res['response']['post_id']

                if res['response']['success'] == 1:
                    with con:
                        cur.execute(
                            'INSERT INTO accaunt_repost (user_id, group_post_id, post_id) VALUES (?,?,?)',
                            (user_id, group_post_id, post_id))
                        atLeastOneRepost = True
                else:
                    if 'error' in res:
                        error.append([res, user_id])
                    else:
                        error.append([res, user_id])

        if atLeastOneRepost == True:
            with con:
                cur.execute('INSERT INTO repost (group_post_id) VALUES (?)',
                            (group_post_id, ))
                print('Репосты сделаны')

        if len(error) == 0:
            print('Все репосты сделаны удачно')
        else:
            [print(i) for i in error]

        self.signalComplete.emit('reposts')
コード例 #29
0
    def unsubscribe(self):
        getUrl = UrlAPI(self.item.token)
        unsubscribe_user_id = self.masSended.pop(0)

        r = self.item.session.get(getUrl.friends.delete(user_id=unsubscribe_user_id), proxies=self.item.session.proxies)
        j = json.loads(r.text)

        if 'response' in j:

            if j['response']['success'] == 1:
                print('Удален')
            else:
                print('Ошибка', j)

        else:
            print('Ошибка', j)

        self.countSendedRequests.setText(str(int(self.countSendedRequests.text()) - 1))
コード例 #30
0
    def joinTheChat(self, chat):
        number_chat, count_users, invite_link = chat
        print('connect to', invite_link)
        self.load(QtCore.QUrl(invite_link))
        print('waiting load inviting page')
        self.waitForSignal()

        page = self.page()
        page.runJavaScript(
            "document.querySelector('button.flat_button.round_button._im_join_chat.im-invitation--join').click()")

        print('waiting after clicking the button "connect"')
        self.waitForSignal()


        # Check the entry in the chat
        print('get dialogs')
        getUrl = UrlAPI(self.token)
        response = self.session.get(getUrl.messages.getDialogs(count=3), proxies=self.session.proxies)
        dialogs = json.loads(response.text)['response']['items']

        for dialog in dialogs:
            print(dialog)

            if dialog['message']['title'] == 'Читаем стихи':
                print('Find')
                os.chdir('/root/PycharmProjects/HearSheep')
                con = sql.connect(os.getcwd() + '/db/db.sqlite3')
                cur = con.cursor()

                with con:
                    cur.execute('INSERT INTO accaunt_chat(user_id,chat_id,number_chat) VALUES(?,?,?)',
                                (self.user_id, dialog['message']['chat_id'], number_chat))
                    cur.execute('UPDATE chat SET count_users=? WHERE number_chat=?', (count_users+1, number_chat))

                con.close()

                print('joined the chat')
                return True

        print("not joined the chat")
        return False