예제 #1
0
def tea(bot, user, call, *args):
    global running_time_processes
    quote_raw = choice(
        open(tetueSrc.get_string_element("tea_butler", "quotes_path"),
             encoding='utf-8').readlines())
    quote = quote_raw.replace("\n", "")
    if any(word in call for word in TEA_CMD):
        bot.send_message(
            f"\"{user.get_displayname()}\" {TEA_EMOTE} , bitteschön. {quote}")
    elif any(word in call for word in COFFEE_CMD):
        bot.send_message(
            f"\"{user.get_displayname()}\" {COFFEE_EMOTE} , bitteschön. {quote}"
        )
    # Prüfe, ob ein Tea-Prozess vom User schon aktiviert ist. Serviere das Getränk, erstelle aber keinen neuen Prozess.
    # Der Fehler war der, dass wenn ein User mehrere gestartet hat und sich dann bedankt hat, dass für jeden Prozess ein
    # Bitteschön im Chat kam. Jetzt wird das Objekt einfach nur wieder auf max-Zeit hochgesetzt und fertig.
    running_tea_process = [
        run_process for run_process in running_time_processes if
        isinstance(run_process, TeaProcess) and run_process.user_id == user.id
    ]
    if any(running_tea_process):
        for tea_process in running_tea_process:
            tea_process.starttime = time.time()
    else:
        running_time_processes.append(TeaProcess(user.id))
    print(running_time_processes)
예제 #2
0
    def on_welcome(self, cxn, event):
        for req in ("membership", "tags", "commands"):
            cxn.cap("REQ", f":twitch.tv/{req}")

        cxn.join(self.CHANNEL)
        print("Chatroom joined")
        react.create_hen_name_list()
        print("Update data")
        user_management.update_user_awards()
        react.update_kd_counter(bot)
        tetueSrc.log_header_info("Stream-Start")
        self.send_message("En Gude Tüftlies " + tetueSrc.get_string_element("hunname", "icon"))
        print("Online")
        # self.send_wisper()
        automod.trigger_lurk_bots(bot)
예제 #3
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import logging
import tetueSrc
import datetime

path_to_logfile = tetueSrc.get_string_element("paths", "logfile")
final_path_logfile = path_to_logfile + datetime.datetime.now().strftime(
    "%Y_%m_%d_chatlog.log")

logging.basicConfig(
    handlers=[logging.FileHandler(final_path_logfile, 'a', 'utf-8')],
    format='[%(asctime)s] %(levelname)-10s %(message)s',
    level=logging.INFO)


def log_event_info(message):
    logging.info(message)


def log_event_error(message):
    logging.error(message)


def log_event_warning(message):
    logging.warning(message)


def log_header_info(message):
    with open(final_path_logfile, "a", encoding="utf-8") as f:
        f.write(f'# {message} - {datetime.datetime.now()} \n')
예제 #4
0
def reminder(bot, user, call, *args):
    with open(tetueSrc.get_string_element("paths", "reminderfile"),
              "a",
              encoding='utf8') as f:
        f.write(f'{datetime.today()}: {" ".join(args)}\n')
예제 #5
0
from datetime import datetime
from sys import exit

import db
import react
import tetueSrc
import user_management

read_successful, cfg = tetueSrc.get_configuration("bot")
OWNER = cfg["owner"]
TWEETMAXLENGTH = tetueSrc.get_int_element("general", "hashtag_max_length")
TWEETWELCOME = tetueSrc.get_string_element("general", "tweet_welcome")
TWEETMINSIZE = tetueSrc.get_int_element("general", "hashtag_min_size")
hashtag_tweet_list = {"#twitchstreamer", "#TwitchDE", "#knorzen"}


def get_trigger_commands_output_text() -> list:
    loaded_config = tetueSrc.get_string_list_only_section("output_text")
    return [
        element for key, value in loaded_config.items()
        for element in value['commands'] if value['active']
    ]


trigger_commands_output_text = get_trigger_commands_output_text()


def load_new_command_infos(bot, user, *args):
    global trigger_commands_output_text
    tetueSrc.load_configuration()
    loaded_config = tetueSrc.get_string_list_only_section("output_text")
예제 #6
0
from time import time

import automod
import economy
import games
import misc
import mod
import tetueSrc
import user_management

PREFIXMSG = tetueSrc.get_string_element("general", "prefix_msg")
PREFIXTWE = tetueSrc.get_string_element("general", "prefix_twe")
CMD_TEA_BUTTLER = tetueSrc.get_string_list("tea_butler", "cmd_tea") \
                  + tetueSrc.get_string_list("tea_butler", "cmd_coffee")
CMD_HONOR = tetueSrc.get_string_list("feat_honor", "cmd_honor")


class Cmd(object):
    def __init__(self,
                 callables,
                 func,
                 function_info,
                 rights=user_management.Badge.Tueftlie,
                 cooldown=0):
        self.callables = callables
        self.func = func
        self.cooldown = cooldown
        self.next_use = time()
        self.allowed = True
        self.function_info = function_info
        self.rights = rights
예제 #7
0
from collections import defaultdict
from datetime import datetime, timedelta
from random import randint, choice

import db
import games
import tetueSrc
import user_management
import automod

messages = defaultdict(int)

# "Emote from a another world"
emotes_another_world = ["(y)"]
# K/D Counter
cfg_kd = tetueSrc.get_string_element("paths", "kd")
# Hen name
HENNAME = tetueSrc.get_string_element("hunname", "id")
avail_hen_name_list = list()
# Auto-Vip
LOYALITYPOINT_1 = tetueSrc.get_int_element("autovip", "num_loy_point_1")
LOYALITYPOINT_2 = tetueSrc.get_int_element("autovip", "num_loy_point_2")
LOYALITYPOINT_3 = tetueSrc.get_int_element("autovip", "num_loy_point_3")
# Channel points
CP_LIEGESTUETZE = tetueSrc.get_string_element("general", "cp_liege_stue")
CP_TRINKWAS = tetueSrc.get_string_element("general", "cp_wasser_marsch")
CP_CENTER_SHOCK = tetueSrc.get_string_element("general", "cp_center_shock")


def process(bot, user, message):
    update_records(bot, user)
예제 #8
0
import time
from enum import Enum, auto
from random import choice, shuffle

import db
import tetueSrc
import user_management

TEAANSWERTIME = tetueSrc.get_int_element("tea_butler", "answer_time")
TEAANSWER = tetueSrc.get_string_list("tea_butler", "answer_butler")
TEA_EMOTE = tetueSrc.get_string_element("tea_butler", "emote_tea")
TEA_CMD = tetueSrc.get_string_list("tea_butler", "cmd_tea")
COFFEE_EMOTE = tetueSrc.get_string_element("tea_butler", "emote_coffee")
COFFEE_CMD = tetueSrc.get_string_list("tea_butler", "cmd_coffee")
QUOTESPATH = tetueSrc.get_string_element("tea_butler", "quotes_path")
HONORANSWERTIME = tetueSrc.get_int_element("feat_honor", "answer_time")
HONOR_MIN_DIVISOR = tetueSrc.get_string_list("feat_honor", "divisor")
DELETEANSWERTIME = tetueSrc.get_int_element("general", "answer_time")
RUSROULETTE_GAME_TIME = tetueSrc.get_int_element("roulette", "answer_time")
RUSROULETTE_GAME_TIMEOUT_TIME = tetueSrc.get_int_element(
    "roulette", "timeout_time")
RUSROULETTE_GAME_BET_AMOUNT = tetueSrc.get_int_element("roulette",
                                                       "bet_amount")

num_pronunciation = {
    1: "erste",
    2: "zweite",
    3: "dritte",
    4: "vierte",
    5: "fünfte",
    6: "sechste"