Ejemplo n.º 1
0
    def do_it(self, ev):
        login = self.login_edit.get()
        password = self.password_edit.get()
        diary_id = self.diary_id_edit.get()
        filename = self.filename_edit.get()
        split_type = self.split_type.get()

        if not login:
            messagebox.showinfo("Error", "Логин не задан")
            return
        if not diary_id:
            messagebox.showinfo("Error", "Адрес сообщества не задан")
            return
        if not filename:
            messagebox.showinfo("Error", "Путь к файлу не задан")
            return

        api = Diary()
        try:
            api.login(login, password)
            text_with_header = util.load(filename)
            prefix = os.path.splitext(filename)[0]
            text_with_header = util.fix_characters(text_with_header)
            header, text = find_header(text_with_header)
            if split_type == 1:
                post, comments = split_text_with_comments(header, text)
                util.store(prefix + "_post.txt", post)
                for i, comment in enumerate(comments):
                    util.store(prefix + "_comment_%d.txt" % (i+1), comment)

                # Send to diary
                post_id = api.new_post(post, diary_id)
                for comment in comments:
                    api.add_comment(post_id, comment)

                if len(comments) > 0:
                    messagebox.showinfo("Info", "Пост успешно опубликован, тексты комментариев ищите в файлах *comment_N.txt")
                else:
                    messagebox.showinfo("Info", "Пост успешно опубликован")
            else:
                posts = split_text_with_posts(header, text)
                for i, post in enumerate(posts):
                    util.store(prefix + "_post_%d.txt" % (i + 1), post)

                # Send to diary
                for post in posts:
                    api.new_post(post, diary_id)
                messagebox.showinfo("Info", "Посты успешно опубликованы. Тексты продублированы в файлы *post_N.txt")
        except Exception as e:
            messagebox.showinfo("Error", str(e))
            return