Методи гейміфікації в Instagram та Facebook
Для налаштування роботи функцій рекомендуємо використовувати шаблон гейміфікації для чатів Instagram як зразок.
Для використання функцій, перелічених нижче, необхідно оголосити спільні змінні в Налаштуваннях проєкту:
game_add_comment(text=None) - додає бали за коментар в Instagram або FB; також можна передати будь-який текст.
game_add_stories() - додає бали за реакції в сторіс
game_add_message() - додає бали за повідомлення в Direct
game_add_stories_mention() - додає бали за згадування в сторіс
game_get_user_score() - повертає бали користувача
game_get_user_place() - показує позицію користувача в рейтингу
game_get_leader_score() - повертає бали лідера в рейтингу
game_get_top(count=99999999, shift=0, humanize=False, delimiter=None, platform=None) - виклик функції без аргументів повертає відсортований рейтинг у вигляді масиву користувачів. Приймає наступні 5 параметрів: count - скільки користувачів повернути; shift - початкова позиція в рейтингу для вибірки (0 означає, що список починається з лідера і йде вниз за балами; наприклад, 3 означає, що вибірка починається з 4-го місця і нижче); humanize 0 - повертає масив словників користувачів, 1 повертає відформатований список для відображення користувачеві; delimiter - роздільник між ім'ям користувача та його балами (використовується, якщо humanize=1); platform 1 - виводить логін Instagram (наприклад, @nik) замість імені користувача.
Приклад 1: game_get_top(10, 0, 1, ' - ') поверне: John - 40 Anna - 30 George - 10
Приклад 2: game_get_top(3, 0, 1, ' - ', 1) поверне: @john - 40 @anna - 30 @privet - 10
game_add_score(count=1, client_id=None) - додає бали користувачеві
game_set_score(score, client_id=None) - встановлює загальну кількість балів користувача
game_ban_player() - блокує користувача
game_unban_player() - розблоковує користувача
game_user_banned() - повертає статус блокування користувача; True, якщо заблоковано, False, якщо ні
# дозволяє працювати з довільними значеннями в таблиці лідерів.
game_add_value(val_name, count=1, client_id=None) -
game_set_value(val_name, value, client_id=None)
Якщо client_id не вказано, функція працює з поточним клієнтом.
game_minus_user_score(count =10) - віднімає бали у користувача (count - скільки балів відняти)
game_get_today_user_comment_action() - кількість коментарів, зроблених користувачем сьогодні
game_get_today_user_message_actions() - кількість повідомлень, надісланих користувачем сьогодні
game_get_today_user_stories_actions() - кількість сторіс, опублікованих користувачем сьогодні
game_get_today_user_mention_actions() - кількість активностей (згадувань) користувача сьогодні
game_get_today_user_post_mention_actions() - кількість публікацій із згадуваннями користувача сьогодні
game_get_total_comment_action() - загальна кількість коментарів за всю гру
game_get_total_message_actions() - загальна кількість повідомлень за всю гру
game_get_total_stories_actions() - загальна кількість сторіс за всю гру
game_get_total_stories_mention_actions() - загальна кількість згадувань у сторіс за всю гру
game_get_total_post_mention_actions() - загальна кількість згадувань у публікаціях за всю гру
Отримання рейтингу в Telegram
Для налаштування роботи функцій рекомендуємо використовувати шаблон гейміфікації для чатів Telegram як зразок.
У глобальних змінних слід створити словник з іменем tg_thanks_score_data для зберігання інформації про клієнтів у наступному форматі:
{"total_thanks":20,"326659632":{"name":"John","user_name":"john","score":5},"403051597":{"name":"Timm","user_name":"dbeing","score":15,"banned":false}}
tg_get_top(count=99999999, shift=0, humanize=False, delimiter=None)
Параметри:
count - скільки користувачів повернути
shift - початкова позиція в рейтингу для вибірки (0 означає, що список починається з лідера і йде вниз за балами; наприклад, 3 означає, що вибірка починається з 4-го місця і нижче)
humanize - 0 повертає масив словників користувачів, 1 повертає відформатований список для відображення користувачеві
delimiter - роздільник між ім'ям користувача та його балами (використовується, якщо humanize=1)
tg_get_user_info()
{'score': user_score, 'place': place, 'name': name}


