MEDIA = { 'FLYING_AWAY': { 'file': 'bye.mp4', 'source': 'https://www.youtube.com/watch?v=6Qp4wafJ8_I', }, 'FLYING_IN': { 'file': 'hello.mp4', 'source': 'https://www.youtube.com/watch?v=Gu8EudiPLZw', }, 'STAIRS': { 'file': 'stairs.mp4', 'source': 'https://www.youtube.com/watch?v=coDxZZjTt4w', }, 'BELLY_RUB': { 'file': 'rewards/belly-rub.mp4', 'source': 'https://www.youtube.com/watch?v=-bTaj37E79k', }, 'DJBIRB': { 'file': 'rewards/dj.mp4', 'source': 'https://www.youtube.com/watch?v=1v2SN06DnPo', }, 'SHOPPING': { 'file': 'rewards/shopping.mp4', 'source': 'https://www.youtube.com/watch?v=BfhlPEkNm7o', }, 'DANCINGQUEEN': { 'file': 'rewards/queen.mp4', 'source': 'https://www.youtube.com/watch?v=9DaGgzJm6is', }, 'MICROWAVE': { 'file': 'rewards/microwave.mp4', 'source': 'https://www.youtube.com/watch?v=NVY0qNe3BUE', }, 'JUMPING': { 'file': 'rewards/jumping.mp4', 'source': 'https://www.youtube.com/watch?v=_62o7u-BYRA', }, 'RIDING': { 'file': 'rewards/riding.mp4', 'source': 'https://www.youtube.com/watch?v=dVngVDTYbOQ', }, 'RIVERDANCE': { 'file': 'rewards/riverdance.webm', 'source': 'https://www.youtube.com/watch?v=KF7gk10jgEw', }, 'PAPERTOWEL': { 'file': 'rewards/papertowel.mp4', 'source': 'https://www.youtube.com/watch?v=6_-4KArFR08', }, 'BIRDVSPHONE': { 'file': 'rewards/phonecover.mp4', 'source': 'https://www.youtube.com/watch?v=ktzfC5ZcOtE', }, 'KILLERBIRD': { 'file': 'rewards/killerbird.mp4', 'source': 'https://twitter.com/colloritz/status/798470429308424192', }, 'WITHFRIENDS': { 'file': 'rewards/friends.mp4', 'source': 'https://twitter.com/s_hatachan/status/879946102878883840', }, } MSGS = { 'ERROR_NOBOT': { 'text': '''@{sender_acct} Pwii! Pwi. [FR] Désolé, je n'irai pas voir {receiver_acct}, car cette personne ne semble pas vouloir de la visite de bots. [EN] Sorry, I won't visit {receiver_acct} as they do not seem to like bots very much.''', 'privacy': 'direct', }, 'ERROR_UNDELIVERABLE': { 'text': '''@{sender_acct} Pwiii… [FR] Désolé, je n'ai pas réussi à joindre {receiver_acct}… essaie avec quelqu'un d'autre ? [EN] Sorry, I can't reach {receiver_acct}… maybe try with someone else?''', 'privacy': 'direct', }, 'ERROR_OWNED': { 'text': '''@{sender_acct} Pwi pwi pwi!!! [FR] Je suis chez quelqu'un d'autre ! Je serai de nouveau disponible si cette personne ne m'envoie pas me promener d'ici {hours}h{minutes:02d} ! Tu peux me demander de te dire quand je serai disponible en me disant « notifie moi » ! [EN] I'm currently visiting someone else! I'll be available in {hours}h{minutes:02d} if that person doesn't send me around in the meantime! You can request that I notify you when I'm available by telling me “notify me”!''', 'privacy': 'direct', }, 'ERROR_OWNED2': { 'text': '''@{sender_acct} Pwi pwi pwi!!! [FR] Je suis chez quelqu'un d'autre ! Je serai de nouveau disponible si cette personne ne m'envoie pas me promener d'ici {hours}h{minutes:02d} ! Je te dirai la prochaine fois que je serai disponible ! [EN] I'm currently visiting someone else! I'll be available in {hours}h{minutes:02d} if that person doesn't send me around in the meantime! I'll tell you next time I'm available!''', 'privacy': 'direct', }, 'ERROR_DELIVERY': { 'text': '''@{sender_acct} Pwiii pwii pwii pwiii! [FR] Je suis déjà en train de m'envoler pour voir quelqu'un d'autre ! Tu peux me demander de te dire quand je serai disponible en me disant « notifie moi » ! [EN] I'm already flying away to someone else! You can request that I notify you when I'm available by telling me “notify me”!''', 'privacy': 'direct', }, 'ERROR_DELIVERY2': { 'text': '''@{sender_acct} Pwiii pwii pwii pwiii! [FR] Tu m'as déjà envoyé voir quelqu'un d'autre ! Tu peux encore revenir sur ce choix en me disant « reviens » ! [EN] You already sent me to someone else! If that was a mistake, you can tell me to “come back”!''', 'privacy': 'direct', }, 'ERROR_DELIVERY3': { 'text': '''@{sender_acct} Pwiii pwii pwii pwiii! [FR] Je suis déjà en train de m'envoler pour voir quelqu'un d'autre ! Je te dirai la prochaine fois que je serai disponible ! [EN] I'm already flying away to someone else! I'll tell you next time I'm available!''', 'privacy': 'direct', }, 'ERROR_INVALID_FORMAT': { 'text': '''@{sender_acct} Pwii? Pwiii! [FR] Je n'ai pas compris vers qui je dois m'envoler ? Il faut me dire « va voir utilisateur@domaine » ! [EN] I don't understand who I'm supposed to be flying to? You have to tell me “go see user@domain”!''', 'privacy': 'direct', }, 'ERROR_UNKNOWN_ACCOUNT': { 'text': '''@{sender_acct} Pwiii! Pwiii? [FR] Je n'ai pas trouvé {acct} ! Vers qui d'autre dois-je aller ? [EN] I can't find {acct}! Who else should I visit?''', 'privacy': 'direct', }, 'ERROR_UNKNOWN_ACCOUNT2': { 'text': '''@{sender_acct} Pwiii! Pwiii? [FR] Je n'ai pas trouvé {acct} ! Vers qui d'autre dois-je aller ? Peut-être voulais-tu dire {suggested_acct} ? [EN] I can't find {acct}! Who else should I visit? Maybe you meant {suggested_acct}?''', 'privacy': 'direct', }, 'ERROR_INTERNAL': { 'text': '''@{sender_acct} Pwiiii… [FR] Je suis désolé, je n'arrive pas à contacter {acct}… il va falloir essayer avec quelqu'un d'autre. [EN] I'm sorry I cannot reach {acct}… who should I be flying to?''', 'privacy': 'direct', }, 'ERROR_SAME_ACCOUNT': { 'text': '''@{sender_acct} Pwiii! [FR] Hé, ce n'est pas du jeu de vouloir me garder comme ça ! Vers qui d'autre dois-je aller ? [EN] Hey, it's not fair to try to keep me like this! Who else should I visit?''', 'privacy': 'direct', }, 'ERROR_OWN_ACCOUNT': { 'text': '''@{sender_acct} Pwii. Pwii? [FR] Je ne peux pas aller me voir moi-même ? [EN] I cannot fly to see myself?''', 'privacy': 'direct', }, 'DELIVERY_START': { 'text': '''@{sender_acct} Pwiipwii pwiipwiii! [FR] En route vers chez {acct} ! Ça peut me prendre un peu de temps ! Si je me suis trompé de personne, tu peux me dire de revenir en me disant « reviens » ! [EN] On my way to {acct}! This may take me a while! If I'm not flying to the correct person, you can still tell me to “come back”!''', 'privacy': 'direct', 'media': ['FLYING_AWAY'], }, 'DELIVERY_CANCELLED': { 'text': '''@{sender_acct} Pwiii… [FR] Tu ne veux plus que j'aille voir {acct} ? D'accord… qui dois-je aller voir ? [EN] You don't want me to go visit {acct} anymore? Ok… but who should I fly to?''', 'privacy': 'direct', }, 'DELIVERED': { 'text': '''@{receiver_acct} :caique: Pwii pwiii! :caique: [FR] Bonjour de la part de {sender_acct} ! Je ne suis qu'à toi pour les {nb_hours} prochaines heures ! Envoie-moi voir qui tu veux en répondant « va voir utilisateur@domaine » ! Tu peux aussi me dire « va jouer ailleurs » ! [EN] Hello from {sender_acct_short}! Send me to anyone by replying “go see user@domain”! Until then, I'll be yours for the next {nb_hours} hours! You can also tell me to “go play somewhere else”!''', 'privacy': 'direct', 'media': {('FLYING_IN',): 3, ('STAIRS',): 1}, }, 'IDLE': { 'text': ''':caique: Pwiii… pwii pwii! :caique: [FR] Personne ne m'a envoyé me promener depuis un moment… du coup, n'importe qui peut le faire en me répondant « va voir utilisateur@domaine » ! [EN] Noone sent me flying away… but now, anybody can! Reply me with “go see user@domain”, and I'll fly to them!''', 'privacy': 'public', }, 'IDLE2': { 'text': ''':caique: Pwiii… pwii pwii! :caique: [FR] La personne chez qui j'ai été envoyé préfère que j'aille jouer ailleurs ! Du coup, envoyez-moi chez qui vous voulez en me répondant « va voir utilisateur@domaine » ! [EN] The person I was sent to would like me to play somewhere else! Reply me with “go see user@domain”, and I'll fly to them!''', 'privacy': 'public', }, 'NOTIFY_REQUEST': { 'text': '''@{acct} :caique: Pwii! :caique: [FR] Entendu ! Je te dirai la prochaine fois que je serai disponible ! [EN] Got it! I'll tell you next time I'm available!''', 'privacy': 'direct', }, 'NOTIFY_IDLE': { 'text': '''@{acct} :caique: Pwii pwii! :caique: [FR] Tu m'avais demandé de te notifier quand je deviendrai disponible ! Et bien c'est chose faite ! [EN] You requested that I notify you when I become available! I'm available now!''', 'privacy': 'direct', }, 'BELLY_RUB': { 'text': ''':caique: Pwiiiiii <3 :caique: [FR] J'ai rencontré {nb_users} personnes et j'ai apporté du bonheur {nb_likes} fois ! J'ai bien mérité un petit gratouilli ! [EN] I've met {nb_users} people and I've made them happy {nb_likes} times! I've earned myself a belly rub!''', 'privacy': 'public', 'media': ['BELLY_RUB'], }, 'PAPERTOWEL': { 'text': ''':caique: Pwiii… pwii! :caique: [FR] Des fois, je comprends vraiment pas mon cousin à tête noire… mais bon, il a l'air de bien s'amuser ! [EN] Sometimes, I really don't understand my black-headed cousin… but he seems to be having a lot of fun!''', 'privacy': 'public', 'media': ['PAPERTOWEL'], }, 'JUMPING': { 'text': ''':caique: Pwii? Pwiii! :caique: [FR] Mon cousin à tête noir commence à sauter sur place… sinon, j'ai rencontré {nb_users} d'entre vous et je leur ai fait plaisir {nb_likes} fois ! [EN] My black-headed cousin is starting to jump in-place… by the way, I've met {nb_users} of you and I've made them happy {nb_likes} times!''', 'privacy': 'public', 'media': ['JUMPING'], }, 'DANCINGQUEEN': { 'text': ''':caique: Pwii~ pwiii~ pwiii~ 🎶 :caique: [FR] Je vais bientôt rencontrer tout le fediverse ! {nb_users} personnes ! Pfiou ! Sinon, j'aime bien Queen ! [EN] I've met almost all of the fediverse! {nb_users} of you! Wow! Also, I like Queen!''', 'privacy': 'public', 'media': ['DANCINGQUEEN'], }, 'SHOPPING': { 'text': ''':caique: Pwi pwi pwiiii! :caique: [FR] J'ai rencontré pas moins de {nb_users} mastonautes ! Et ils ont aimé mes visites {nb_likes} fois ! Mon cousin est parti m'acheter à manger ! [EN] I've met {nb_users} mastonauts! And they liked my visits {nb_likes} times! My cousin went shopping for dinner!''', 'privacy': 'public', 'media': ['SHOPPING'], }, 'MICROWAVE': { 'text': ''':caique: Pwi! Pwi! Pwi! Pwi! Pwi! Pwi! :caique: [FR] J'ai rencontré {nb_users} personnes formidables ! Ils ont aimé mes visites {nb_likes} fois ! Je vais fêter ça en dinant ! [EN] I've met {nb_users} amazing people! And they liked me {nb_likes} times! I'll eat dinner to celebrate!''', 'privacy': 'public', 'media': ['MICROWAVE'], }, 'DJBIRB': { 'text': ''':caique: Pwiii~ pwiii~ pwiii~ pwiii~ :caique: [FR] Pwiiiii~ j'ai rencontré {nb_users} personnes qui m'ont aimé {nb_likes} fois, je m'amuse comme un petit fou ! [EN] Pwiiiii~ I've met {nb_users} who liked me {nb_likes} times, I'm having a lot of fun!''', 'privacy': 'public', 'media': ['DJBIRB'], }, 'RIDING': { 'text': ''':caique: Pwii pwii pwii~ :caique: [FR] Il n'y a pas que mon cousin qui peut s'amuser comme ça ! Regardez-moi ! ~ J'ai rencontré {nb_users} personnes et ils m'ont apprécié {nb_likes} fois ! [EN] My cousin is not the only one that can have fun! Look at me! ~ I've met {nb_users} people so far and they liked me {nb_likes} times!''', 'privacy': 'public', 'media': ['RIDING'], }, 'RIVERDANCE': { 'text': ''':caique: Pwii 🎶 :caique: [FR] Regardez mon cousin danser ! J'ai rencontré {nb_users} personnes et ils m'ont apprécié {nb_likes} fois ! [EN] Watch my cousin dance! I've met {nb_users} people so far and they liked me {nb_likes} times!''', 'privacy': 'public', 'media': ['RIVERDANCE'], }, 'BIRBVSPHONE': { 'text': ''':caique: Pwii! :caique: [FR] Ne plaisante pas avec mon cousin, ok ? Ou sinon, gare à ton téléphone ! [EN] Don't mess with my cousin ok? He'll wreak your phone! Or at least its cover!''', 'privacy': 'public', 'media': ['BIRDVSPHONE'], }, 'KILLERBIRD': { 'text': ''':caique: … :caique: [FR] Mon cousin me fait peur parfois… j'espère qu'il ne fera jamais rien de tel à aucune des {nb_users} personnes que j'ai rencontré ! [EN] I'm afraid of my cousin sometimes… I hope he won't do anything like this to any of the {nb_users} people I've met so far!''', 'privacy': 'public', 'media': ['KILLERBIRD'], }, 'WITHFRIENDS': { 'text': ''':caique: Pwiii pwii pwii~ :caique: [FR] En train de passer du temps avec mes amis ! Je leur raconte mes rencontres avec vous tous et les {nb_likes} fois où vous avez apprécié mes visites ! [EN] Hanging out with my friends, telling them about all {nb_users} of you and how you liked my visits {nb_likes} times!''', 'privacy': 'public', 'media': ['WITHFRIENDS'], } } REWARDS = [ {'required_likes': 2, 'required_users': 3, 'msg_id': 'BELLY_RUB'}, {'required_likes': 5, 'required_users': 5, 'msg_id': 'JUMPING'}, {'required_likes': 10, 'required_users': 10, 'msg_id': 'DANCINGQUEEN'}, {'required_likes': 20, 'required_users': 12, 'msg_id': 'SHOPPING'}, {'required_likes': 30, 'required_users': 15, 'msg_id': 'MICROWAVE'}, {'required_likes': 40, 'required_users': 20, 'msg_id': 'DJBIRB'}, {'required_likes': 45, 'required_users': 30, 'msg_id': 'PAPERTOWEL'}, {'required_likes': 46, 'required_users': 35, 'msg_id': 'RIDING'}, {'required_likes': 50, 'required_users': 40, 'msg_id': 'RIVERDANCE'}, {'required_likes': 60, 'required_users': 50, 'msg_id': 'BIRBVSPHONE'}, {'required_likes': 70, 'required_users': 60, 'msg_id': 'KILLERBIRD'}, {'required_likes': 80, 'required_users': 70, 'msg_id': 'WITHFRIENDS'}, ]