示例#1
0
# region IMPORTS
import tkinter
from tkinter import filedialog
from pathlib import Path
import pickle

from telegram.ext import CommandHandler, Updater
from wplay.utils.helpers import data_folder_path
from wplay.utils.Logger import Logger
# endregion

# region LOGGER
__logger = Logger(Path(__file__).name)
# endregion

status_file_path = None


def start_tkinter():
    root_window = tkinter.Tk()
    root_window.withdraw()


def ask_where_are_the_status_file():
    print('Choose a status text file.')
    status_file_path = filedialog.askopenfile(
        initialdir=data_folder_path / 'tracking_data',
        title='Choose a status text file.',
        filetypes=(("text files", "*.txt"), ("all files", "*.*")))
    if status_file_path == ():
        print("Error! Choose a status.")
示例#2
0
from wplay import message_blast
from wplay import message_timer
from wplay import terminal_chat
from wplay import save_chat
from wplay import telegram_bot
from wplay import schedule_message
from wplay import about_changer
from wplay import get_news
from wplay import get_media
from wplay.utils.Logger import Logger
from wplay.utils.helpers import create_dirs
from wplay.utils.helpers import kill_child_processes
# endregion

# region LOGGER
__logger = Logger(Path(__file__).name)
# endregion


def print_logo(text_logo):
    figlet = Figlet(font='slant')
    print(figlet.renderText(text_logo))


# parse positional and optional arguments
def get_arg_parser():
    parser = argparse.ArgumentParser(description='WhatsApp-play')
    parser.add_argument(
        "target",
        metavar="TARGET",
        type=str,
示例#3
0
class MessageStack():
    def __init__(self):
        self.logger = Logger(Path(__file__).name)
        self.__create_json_file(helpers.messages_json_path)
        self.__ensure_valid_json(helpers.messages_json_path)
        self.__create_json_file(helpers.open_messages_json_path)
        self.__ensure_valid_json(helpers.open_messages_json_path)

    def __create_json_file(self, file_path: Path):
        if not file_path.is_file():
            open(file_path, 'w').close()
            self.logger.info(f'{file_path.name} created.')

    def __write_json(self, data: dict, file_path: Path):
        with open(file_path, "w") as json_file:
            json.dump(data, json_file, indent=4)

    def __ensure_valid_json(self, file_path: Path):
        valid_data = {"messages": list()}
        try:
            with open(file_path) as json_file:
                data = json.load(json_file)
                if not 'messages' in data:
                    self.__write_json(valid_data, file_path)
        except json.JSONDecodeError:
            # Empty or Invalid Json
            self.__write_json(valid_data, file_path)

    def append_message(self, message: dict, file_path: Path):
        """
        Append messages into json file.

        Arguments:
            message -- dict with a message
            file_path {Path} -- open_messages_json_path or messages_json_path from helpers
        """
        self.__ensure_valid_json(file_path)

        with open(file_path) as json_file:
            json_data = json.load(json_file)
        json_data['messages'].append(message)

        self.__write_json(json_data, file_path)
        self.logger.info(f'Message appended to {file_path.name}')

    def get_message(
            self,
            from_file_path: Path = helpers.messages_json_path
    ) -> Iterator[dict]:
        """
        Yield a message from a file. 

        Arguments:
            from_file_path {Path} -- open_messages_path or messages_path from helpers

        Exception:
            raise StopIteration, json.JSONDecodeError, KeyError if file is empty, or the iteration stopped or the key isn't finded.

        Yields:
            [dict] -- Yield a dict with all message data
        """
        with open(from_file_path) as json_file:
            data = json.load(json_file)
            for message in data['messages']:
                yield message

    def get_all_messages(
            self,
            from_file_path: Path = helpers.messages_json_path) -> List[dict]:
        self.__ensure_valid_json(from_file_path)
        with open(from_file_path) as json_file:
            data = json.load(json_file)
            return data['messages']

    def move_message(self, from_file_path: Path, to_file_path: Path,
                     uuid: str):
        with open(from_file_path) as json_file:
            data = json.load(json_file)
            for message in data['messages']:
                if uuid in message['uuid']:
                    self.append_message(message, to_file_path)
                    self.remove_message(uuid, from_file_path)

    def move_all_messages(self, from_file_path: Path, to_file_path: Path):
        self.__ensure_valid_json(from_file_path)
        with open(from_file_path) as json_file:
            data = json.load(json_file)
            for message in data['messages']:
                self.append_message(message, to_file_path)
                self.remove_message(message['uuid'], from_file_path)

    def remove_message(self, uuid: str, file_path: Path):
        with open(file_path) as json_file:
            data = json.load(json_file)
            for i, message in enumerate(data['messages']):
                if uuid in message['uuid']:
                    del data['messages'][i]
                    self.__write_json(data, file_path)
                    self.logger.info(
                        f"Message Deleted Successfully from {file_path.name}")

    def remove_all_messages(self, file_path: Path):
        with open(file_path) as json_file:
            data = json.load(json_file)
            for i, message in enumerate(data['messages']):
                del data['messages'][i]
                self.__write_json(data, file_path)
            self.logger.info(
                f"Deleted Successfully all messages from {file_path.name}")
示例#4
0
 def __init__(self):
     self.logger = Logger(Path(__file__).name)
     self.__create_json_file(helpers.messages_json_path)
     self.__ensure_valid_json(helpers.messages_json_path)
     self.__create_json_file(helpers.open_messages_json_path)
     self.__ensure_valid_json(helpers.open_messages_json_path)
示例#5
0
import time
import json

from wplay.utils import browser_config
from wplay.utils.target_search import search_target_by_number
from wplay.utils import target_select
from wplay.utils import io
from wplay.utils import helpers
from wplay.utils import verify_internet
from wplay.utils.Logger import Logger
from wplay.utils.MessageStack import MessageStack
# endregion

# region LOGGER
import logging
__logger = Logger(Path(__file__).name, logging.DEBUG)
# endregion
"""
Messages file structure, your program should add messages this way
inside the file "messages.json" located at user/wplay/messagesJSON folder.

{
    "messages": [
        {
            "uuid": "33bf7c667f8011ea96971c3947562893",
            "number": "5562999999999",
            "message": "*Bold Hello World*"
        },
        {
            "uuid": "46ca6d284f8058ee89354e2987862869",
            "number": "5562888888888",