def send_signed_user_message(user, msg_score, text, reply_msid=None, tripcode=False): if not enable_signing: return rp.Reply(rp.types.ERR_COMMAND_DISABLED) if user.isInCooldown(): return rp.Reply(rp.types.ERR_COOLDOWN, until=user.cooldownUntil) ok = spam_scores.increaseSpamScore(user.id, msg_score) if not ok: return rp.Reply(rp.types.ERR_SPAMMY) if tripcode: if user.tripcode is None: return rp.Reply(rp.types.ERR_NO_TRIPCODE) tripname, tripcode = genTripcode(user.tripcode) m = rp.Reply(rp.types.TSIGNED_MSG, text=text, user_id=user.id, tripname=tripname, tripcode=tripcode) else: m = rp.Reply(rp.types.SIGNED_MSG, text=text, user_id=user.id, user_text=user.getFormattedName()) msid = ch.assignMessageId(CachedMessage(user.id)) Sender.reply(m, msid, None, user, reply_msid) return msid
def send_signed_user_message(user, msg_score, text, reply_msid=None, tripcode=False): if not enable_signing: return rp.Reply(rp.types.ERR_COMMAND_DISABLED) if user.isInCooldown(): return rp.Reply(rp.types.ERR_COOLDOWN, until=user.cooldownUntil) ok = spam_scores.increaseSpamScore(user.id, msg_score) if not ok: return rp.Reply(rp.types.ERR_SPAMMY) if not tripcode and sign_interval.total_seconds() > 1: last_used = sign_last_used.get(user.id, None) if last_used and (datetime.now() - last_used) < sign_interval: return rp.Reply(rp.types.ERR_SPAMMY_SIGN) sign_last_used[user.id] = datetime.now() if tripcode: if user.tripcode is None: return rp.Reply(rp.types.ERR_NO_TRIPCODE) tripname, tripcode = genTripcode(user.tripcode) m = rp.Reply(rp.types.TSIGNED_MSG, text=text, user_id=user.id, tripname=tripname, tripcode=tripcode) else: m = rp.Reply(rp.types.SIGNED_MSG, text=text, user_id=user.id, user_text=user.getFormattedName()) msid = ch.assignMessageId(CachedMessage(user.id)) Sender.reply(m, msid, None, user, reply_msid) return msid
def formatter_tripcoded_message(user: core.User, fmt: FormattedMessageBuilder): tripname, tripcode = genTripcode(user.tripcode) # due to how prepend() works the string is built right-to-left fmt.prepend("</code>:\n", True) fmt.prepend(tripcode) fmt.prepend("</b> <code>", True) fmt.prepend(tripname) fmt.prepend("<b>", True)
def set_tripcode(user, text): if not enable_signing: return rp.Reply(rp.types.ERR_COMMAND_DISABLED) if not (0 < text.find("#") < len(text) - 1): return rp.Reply(rp.types.ERR_INVALID_TRIP_FORMAT) if "\n" in text or len(text) > 30: return rp.Reply(rp.types.ERR_INVALID_TRIP_FORMAT) with db.modifyUser(id=user.id) as user: user.tripcode = text tripname, tripcode = genTripcode(user.tripcode) return rp.Reply(rp.types.TRIPCODE_SET, tripname=tripname, tripcode=tripcode)