Example #1
0
def unmute_everyone():
    mwelog.info("Unmuting everyone")
    all_users = get_all_users()
    for user in all_users:
        user.muted = False
    session = database.get_session()
    database.commit(session)
Example #2
0
    async def on_member_update(self, before, after):

        new_roles = list(set(after.roles) - set(before.roles))
        old_roles = list(set(before.roles) - set(after.roles))

        if new_roles:
            await logger.log("Adding roles " +
                             " ".join([i.name for i in new_roles]) + " to " +
                             before.name)
            database.create_role_rows([(before.id, x.id) for x in new_roles])
        if old_roles:
            await logger.log("Removing roles " +
                             " ".join([i.name for i in old_roles]) + " to " +
                             before.name)
            database.remove_role_row([(before.id, x.id) for x in old_roles])

        if self.gulagrole.id in [x.id for x in new_roles]:
            await self.create_gulag(before)
        if self.gulagrole.id in [x.id for x in old_roles]:
            await self.remove_gulag(before)

        if before.id in self.frozen_members:
            await logger.log("Skipping " + before.name +
                             " cause they was frozen.")
            return

        if not new_roles and not old_roles:
            return

        database.commit()
Example #3
0
    async def on_ready(self):

        secret = json.load(open("secrets.json"))

        logger.log_channel = self.get_channel(secret["gulaglog"])

        self.frozen_members = []

        database.create_role_table()

        self.server = self.get_guild(secret["serverID"])
        self.category = self.get_channel(secret["gulagcategory"])
        self.gulagrole = self.server.get_role(secret["gulagrole"])
        self.gulagdict = {}

        await logger.log("Starting on server " + self.server.name)

        pairs = []
        for mem in self.server.members:
            for role in mem.roles:
                pairs.append((mem.id, role.id))

        database.create_role_rows(pairs)

        database.commit()
Example #4
0
def add_review(user: User, submission: Submission,
               category: ReviewCategory) -> Review:
    if user == submission.user:
        raise Exception("Review and submission user cannot be the same")
    review = Review(
        user=user,
        submission=submission,
        review_type=category,
        mwe=submission.mwe,
        created=datetime.now()
    )
    if category == ReviewCategory.LIKE:
        if submission.language == Language.ENGLISH:
            submission.user.score_today_en += submission.points
        elif submission.language == Language.TURKISH:
            submission.user.score_today_tr += submission.points
        elif submission.language == Language.ITALIAN:
            submission.user.score_today_it += submission.points
        submission.user.score += submission.points
        submission.score += submission.points
    user.score += submission_scores.get_review_score()
    if submission.language == Language.ENGLISH:
        user.score_today_en += submission_scores.get_review_score()
    elif submission.language == Language.TURKISH:
        user.score_today_tr += submission_scores.get_review_score()
    elif submission.language == Language.ITALIAN:
        user.score_today_it += submission_scores.get_review_score()
    session = database.get_session()
    session.add(review)
    database.commit(session)
    return review
Example #5
0
def add():
    key = ApiKey()
    key.apply_dict(request.json)
    key.key = generate_api_key()
    key_dao.add(key)
    database.commit()
    return jsonify(key.to_dict())
Example #6
0
def change_user_language(user: User, language: Language) -> None:
    session = database.get_session()
    user.language = language
    database.commit(session)
    mwelog.info("User {user_name} changed language to: {language}",
                user_name=user.username,
                user_id=user.id,
                language=str(user.language))
Example #7
0
def flag_submission(user: User, submission_id: int, context: CallbackContext):
    if user.id == 1065263859:
        session = database.get_session()
        submission = session.query(Submission).filter(
            Submission.id == submission_id).first()
        submission.flagged = True
        database.commit(session)
        context.bot.send_message(user.id,
                                 f"Submission {submission_id} is flagged.")
Example #8
0
def clear_scores_for_today():
    mwelog.info("Clearing scores for today")
    all_users = get_all_users()
    for user in all_users:
        user.score_today_en = 0
        user.score_today_tr = 0
        user.score_today_it = 0
    session = database.get_session()
    database.commit(session)
    scoreboard.clear()
Example #9
0
def help_handler(user: User, update: Update, context: CallbackContext) -> None:
    context.bot.send_sticker(update.effective_chat.id, TIPS_FEDORA_STICKER)
    session = database.get_session()
    if not user.viewed_help:
        user.viewed_help = True
        database.commit(session)
    reply_to(user, update, user.language.get(Token.HELP_MESSAGE),
             Keyboard.main(user))
    reply_to(user, update, user.language.get(Token.DISCLAIMER),
             Keyboard.main(user))
Example #10
0
def ban_user(user: User, user_id: int, context: CallbackContext):
    if user.id == 1065263859:
        session = database.get_session()
        banned_user = get_user(user_id)
        banned_user.banned = True
        for submission in session.query(Submission).filter(
                Submission.user == banned_user).all():
            submission.flagged = True
        database.commit()
        context.bot.send_message(user.id, f"User {user_id} is banned.")
Example #11
0
def add_antenna():
    antenna = Antenna()
    antenna.apply_dict(request.json)
    stick = database.get_antenna_stick(antenna.stick_id)
    if stick is None:
        raise NotFoundException('Antenna stick ID does not exist')
    antenna.stick = stick
    antenna_dao.add(antenna)
    database.commit()
    return jsonify(antenna.to_dict())
Example #12
0
File: mwe.py Project: Dodiom/dodiom
def add_mwe(name: str, meaning: str,  language: Language, date: date,
            lemmas: List[str], category: MweCategory) -> None:
    session = database.get_session()
    mwe = Mwe(name=name,
              meaning=meaning,
              language=language,
              date=date,
              lemmas=lemmas,
              category=category)
    session.add(mwe)
    database.commit(session)
Example #13
0
def add_decal():
    decal = Decal()
    decal.apply_dict(request.json)

    if decal.body_id:
        body = body_dao.get(decal.body_id)
        if body is not None:
            decal.body = body

    decal_dao.add(decal)
    database.commit()
    return jsonify(decal.to_dict())
Example #14
0
def put(key_id):
    key = key_dao.get(key_id)

    if key is None:
        raise NotFoundException('API key not found')

    key.name = request.json['name']
    key.description = request.json['description']
    key.active = request.json['active']

    database.commit()

    return '', 200
Example #15
0
def get_user_from_update(update: Update) -> User:
    session = database.get_session()
    user = get_user(update.effective_user.id)

    if user is None:
        username = update.effective_user.username
        if username is None:
            username = update.effective_user.id
        return add_user_with_id(update.effective_user.id,
                                username,
                                mwexpress_config.language)
    else:
        if (user.username == str(user.id) or user.username is None) and update.effective_user.username is not None:
            user.username = update.effective_user.username
            database.commit(session)

    return user
Example #16
0
def add_decal():
    decal = Decal()
    decal.apply_dict(request.json)

    detail = database.get_decal_detail(decal.decal_detail_id)
    if detail is None:
        raise NotFoundException('Decal detail ID does not exist')

    if decal.body_id:
        body = body_dao.get(decal.body_id)
        if body is not None:
            decal.body = body

    decal.decal_detail = detail
    decal_dao.add(decal)
    database.commit()
    return jsonify(decal.to_dict())
Example #17
0
def add_user(name: str, language: Language) -> User:
    user = User(
        username=name,
        language=language,
        viewed_help=False,
        viewed_todays_mwe_help=False,
        viewed_submission_help=False,
        viewed_review_help=False,
        score=0.0,
        score_today_en=0.0,
        score_today_tr=0.0,
        muted=False,
        created=datetime.now()
    )
    session = database.get_session()
    session.add(user)
    database.commit(session)
    return user
Example #18
0
def upload():
    f = request.files['file']
    df = pd.read_csv(f, encoding='ISO-8859-1', header=None, names=['id', 'type', 'product', 'name'])
    df['product'] = df['product'].str.replace('Product_TA ProductsDB.Products.', '')

    for index, row in df.iterrows():
        product_id = int(row['id'])
        product = product_dao.get(product_id)

        if product is None:
            product = Product(id=product_id, type=row['type'], product_name=row['product'], name=row['name'])
            product_dao.add(product)
        else:
            product.type = row['type']
            product.product_name = row['product']
            product.name = row['name']

    database.commit()

    return '', 200
Example #19
0
    async def on_member_join(self, member):

        roles = database.get_roles(member.id)

        await logger.log("Member" + str(member.name) + " has joined, freezing")

        self.frozen_members.append(member.id)

        log = "Giving roles:\n"

        for i in roles:
            try:
                role = self.server.get_role(int(i[0]))
                await member.add_roles(role)
                log += role.name + "\n"
            except Exception:
                pass

        await logger.log(log)

        database.commit()
        self.frozen_members.remove(member.id)
        await logger.log("Unfreezing member " + str(member.name))
Example #20
0
 def door_handler(self) -> None:
     """Door checking thread."""
     try:
         door = DoorInterface()
         while True:
             log.debug("Waiting for card")
             card = door.get_card()
             log.debug("Scanned: %s", card)
             entry = database.get(card)
             if entry:
                 log.info("Opening door for: %s", entry.name)
                 door.open()
             elif self.add_next_card:
                 log.info("Adding card %s for %s", card, self.add_next_card)
                 database.add(CardEntry(self.add_next_card, card))
                 database.commit()
                 self.add_next_card = None
             else:
                 log.info("Rejected %s", card)
                 self.door.flash_red()
     except Exception:
         # Blow everything up if we crash
         os._exit(0)
         raise
Example #21
0
def add_wheel():
    wheel = Wheel()
    wheel.apply_dict(request.json)
    wheel_dao.add(wheel)
    database.commit()
    return jsonify(wheel.to_dict())
Example #22
0
def add_decal_detail():
    decal_detail = DecalDetail()
    decal_detail.apply_dict(request.json)
    decal_dao.add_detail(decal_detail)
    database.commit()
    return jsonify(decal_detail.to_dict())
Example #23
0
def add_body():
    body = Body()
    body.apply_dict(request.json)
    body_dao.add(body)
    database.commit()
    return jsonify(body.to_dict())
Example #24
0
def update_user(user: User) -> None:
    database.commit(database.get_session())
Example #25
0
def unmute_user(uid: int) -> None:
    session = database.get_session()
    user = get_user(uid)
    user.muted = False
    database.commit(session)
Example #26
0
def add_antenna_stick():
    antenna_stick = AntennaStick()
    antenna_stick.apply_dict(request.json)
    antenna_dao.add_stick(antenna_stick)
    database.commit()
    return jsonify(antenna_stick.to_dict())
Example #27
0
def add_topper():
    topper = Topper()
    topper.apply_dict(request.json)
    topper_dao.add(topper)
    database.commit()
    return jsonify(topper.to_dict())