예제 #1
0
파일: prog.py 프로젝트: voronin601/vk_proof
class Grapfics():
    def __init__(self):
        self.aut = ''
        self.root = Tk()
        self.root.state('zoomed')
        self.root.geometry(
            str(self.root.winfo_screenwidth() - 200) + 'x' +
            str(self.root.winfo_screenheight() - 200))

        self.pb = ttk.Progressbar(self.root,
                                  orient=HORIZONTAL,
                                  length=200,
                                  mode='determinate')

        self.menu = Menu(self.root)
        self.menu.add_command(label="О программе", command=self.prog_menu)

        self.root.config(menu=self.menu)

        self.l_1 = Label(self.root, text="Авторизация в vk")
        self.l_2 = Label(self.root, text="Формат списка")
        self.l_3 = Label(self.root, text="Отчет")
        self.l_4 = Label(self.root, text="Вы не авторизованы")
        self.l_5 = Label(self.root, text="")

        self.en_1 = Entry(self.root)
        self.en_2 = Entry(self.root)

        self.pos_1 = IntVar()
        self.pos_1.set(0)
        self.rb_1 = Radiobutton(
            self.root,
            text="1. http://vk.com/groupID http://vk.com/userID",
            variable=self.pos_1,
            value=0)
        self.rb_2 = Radiobutton(
            self.root,
            text="1. http://vk.com/userID http://vk.com/groupID",
            variable=self.pos_1,
            value=1)

        pos_2 = IntVar()
        pos_2.set(0)
        self.rb_3 = Radiobutton(self.root,
                                text="По участникам",
                                variable=pos_2,
                                value=0)
        self.rb_4 = Radiobutton(self.root,
                                text="По группам",
                                variable=pos_2,
                                value=1)

        self.frame_1 = Frame(self.root)
        self.tex = Text(self.frame_1,
                        width=60,
                        height=35,
                        font="Verdana 6",
                        wrap=WORD)
        self.scr = Scrollbar(self.frame_1, command=self.tex.yview)
        self.tex.configure(yscrollcommand=self.scr.set)

        self.splitter = PanedWindow(self.root,
                                    orient=HORIZONTAL,
                                    height=500,
                                    width=800)
        self.frame_2 = Frame(self.splitter, width='20')
        self.table = Table(self.frame_2)
        self.table.pack(expand=YES, fill=BOTH)

        self.splitter.add(self.frame_2)

        self.scr.pack(side='right', fill='y')
        self.frame_1.place(x='20', y='205')
        self.tex.pack(fill='both')

        if os.path.exists('vk_config.v2.json'):
            with open('vk_config.v2.json', 'r') as t:
                q = json.load(t)
            for i in q.keys():
                log = i
                tok = str(q).split("'access_token': '")[1].split("'")[0]
            self.vk = vk_api.VkApi(login=log, token=tok)
            self.vk.auth(token_only=True)
            self.l_4['text'] = self.vk.method(
                'users.get')[0]['first_name'] + '\n' + self.vk.method(
                    'users.get')[0]['last_name']

        self.b_1 = Button(self.root, text="Войти", command=self.au)
        self.b_2 = Button(self.root,
                          text="Проверить вступления",
                          width=20,
                          command=self.k)
        self.b_3 = Button(self.root,
                          text="Отчет",
                          width=20,
                          command=lambda: Otch().start())
        self.b_4 = Button(self.root, text="Выход", command=self.ex)

        self.splitter.place(x='450', y='205')
        self.en_1.place(x='20', y='55')
        self.en_2.place(x='20', y='80')

        self.b_1.place(x='170', y='50')
        self.b_2.place(x='350', y='140')
        self.b_3.place(x='350', y='170')
        self.b_4.place(x='170', y='80')

        self.l_1.place(x='20', y='30')
        self.l_2.place(x='20', y='120')
        #self.l_3.place(x = '550', y = '120')
        self.l_4.place(x='220', y='55')

        self.rb_1.place(x='20', y='140')
        self.rb_2.place(x='20', y='160')

        #self.rb_3.place(x = '550', y = '140')
        #self.rb_4.place(x = '550', y = '160')

        self.pb.place(x='20', y='650')
        self.l_5.place(x='225', y='650')

        self.root.mainloop()

    def k(self):
        self.l_5['text'] = ""
        self.table.destroy()
        self.table = Table(self.frame_2)
        self.table.pack(expand=YES, fill=BOTH)
        if os.path.exists('vk_config.v2.json'):
            if requests.get(
                    'http://3.12.164.15/table/%s' %
                    str(self.vk.method('users.get')[0]['id'])).text == 'True':
                x = threading.Thread(target=st,
                                     args=(self.pos_1.get(),
                                           self.tex.get('1.0', 'end'), self.vk,
                                           self.table, self.l_5, self.pb))
                x.start()
            else:
                messagebox.showinfo(
                    "Ошибка!",
                    "К вашему аккаунту не привязан ключ для работы программы\nОбратитесь по ссылке: https://vk.com/id124569304"
                )
        else:
            if requests.get(
                    'http://3.12.164.15/table/%s' %
                    str(self.aut.vk_session.method('users.get')[0]['id'])
            ).text == 'True':
                x = threading.Thread(target=st,
                                     args=(self.pos_1.get(),
                                           self.tex.get('1.0', 'end'),
                                           self.aut.vk_session, self.table,
                                           self.l_5, self.pb))
                x.start()
            else:
                messagebox.showinfo(
                    "Ошибка!",
                    "К вашему аккаунту не привязан ключ для работы программы\nОбратитесь по ссылке: https://vk.com/id124569304"
                )

    def ex(self):
        if os.path.exists('vk_config.v2.json'):
            os.remove(
                os.path.join(os.path.abspath(os.path.dirname(__file__)),
                             'vk_config.v2.json'))
        self.l_4['text'] = "Вы не аторизованы"

    def au(self):
        if not os.path.exists('vk_config.v2.json'):
            self.aut = Authentication()
            self.aut.main(self.en_1.get(), self.en_2.get(), self.l_4)
        else:
            messagebox.showinfo(
                "Ошибка!",
                "Для повторной авторизации нужно выйти из нынешнего аккаунта")

    def prog_menu(self):
        self.pr = Tk()
        self.pr.geometry('500x150')

        self.l1_1 = Label(
            self.pr,
            text=
            "Программа сделана для осуществление проверки подписки пользователей\n\n    Разработчик программы:\nvk - https://vk.com/id310539944\nПочта - [email protected]"
        )

        self.l1_1.place(x='20', y='20')

        self.pr.mainloop()
예제 #2
0
menu2.add_command(label="Help")
menu_area.add_cascade(label="Help", menu=menu2)

label_frame = LabelFrame(win, text='label frame')
label_frame.place(x=0, y=10)

lbl_name = Label(label_frame, text="성명: ")
lbl_phone = Label(label_frame, text="전화번호: ")
lbl_email = Label(label_frame, text="이메일: ")

entry_name = Entry(label_frame)
entry_phone = Entry(label_frame)
entry_email = Entry(label_frame)

lbl_name.grid(row=0, column=0)
entry_name.grid(row=0, column=1, padx=5, pady=5)
lbl_phone.grid(row=1, column=0)
entry_phone.grid(row=1, column=1, padx=5, pady=5)
lbl_email.grid(row=2, column=0)
entry_email.grid(row=2, column=1, padx=5, pady=5)

penedwindow = PanedWindow(relief="raised", bd=0)
penedwindow.place(x=20, y=125)

btn_ok = Button(penedwindow, text="확인")
btn_cancel = Button(penedwindow, text="취소")
penedwindow.add(btn_ok)
penedwindow.add(btn_cancel)

if __name__ == '__main__':
    win.mainloop()