tBKwtWS 7 лет назад
Родитель
Сommit
b5927844af
3 измененных файлов с 32 добавлено и 10 удалено
  1. 30 8
      commands/common.py
  2. 1 1
      commands/statistics.py
  3. 1 1
      common/queries.py

+ 30 - 8
commands/common.py

@@ -156,16 +156,38 @@ class GameHelpers():
             notices_words += int(record[7])
             notices_characters += int(record[8])
         userrecord = self.db.one("SELECT xp_spent, level FROM users WHERE LOWER(name)=%s AND network='" + self.network + "'", (user, ))
-        total_xp = (joins + (given * received) + messages + (messages_words / 4) + (messages_characters / 10) + ((actions + (actions_words / 4) + (actions_characters / 10)) * 2) + ((notices + (notices_words / 4) + (notices_characters / 10)) / 2)) / 20
-        xp = total_xp - userrecord[0]
+        total_xp = (joins + (given * received) + messages + (messages_words / 4) + (messages_characters / 10) + ((actions + (actions_words / 4) + (actions_characters / 10)) * 2) + ((notices + (notices_words / 4) + (notices_characters / 10)) / 2)) / 199
+        xp_spent = userrecord[0]
+        xp = total_xp - xp_spent
+        level = userrecord[1]
         total_messages = messages + actions + notices
         total_words = messages_words + actions_words + notices_words
-        if joins < 1:
-            joins = 1
-        if total_messages < 1:
-            total_messages = 1
-        karma = (((messages / 30) - joins) + ((total_words / 10) - total_messages) / 100) - (given * received)
-        return userrecord[1], xp, userrecord[0], karma
+        total_characters = messages_characters + actions_characters + notices_characters
+        if total_xp < 1:
+            total_xp = 1
+        if given == 0:
+            given = 1
+        if received == 0:
+            received = 1
+        msgs_per_join = (messages / 20) - joins
+        print("Msgs per join: (" + str(messages) + " / 20) - " + str(joins) + " = " + str(msgs_per_join))
+        words_per_message = (total_words / 6) - total_messages
+        print("Words per message: = " + str(words_per_message))
+        characters_per_message = (total_characters / 20) - total_messages
+        print("Characters per message: = " + str(characters_per_message))
+        characters_per_word = (total_characters / 6) - total_words
+        print("Characters per word: = " + str(characters_per_word))
+        chatkarma = ((msgs_per_join + words_per_message + characters_per_message + characters_per_message + characters_per_word) / total_xp) / 100
+        print("Chat karma: ((" + str(msgs_per_join) + " + " + str(words_per_message) + " + " + str(characters_per_message) + " + " + str(characters_per_word) + ") / " + str(total_xp) + ") / 100 = " + str(chatkarma))
+        kickkarma = (total_xp / 1337) / (given * received)
+        print("Kick karma: (" + str(total_xp / 1337) + ") / "  + str(given) + " * " + str(received) + " = " + str(kickkarma))
+        xpkarma = xp / 40
+        print("XP Karma: " + str(xp) + " /  40 = " + str(xpkarma))
+        karma = chatkarma - kickkarma + xpkarma
+        print("karma: " + str(chatkarma) + " - " + str(kickkarma) + " + " + str(xpkarma) + " = " + str(karma))
+        #karma = ((((messages / 20) - joins) / 20) + ((((total_words / 6) - total_messages) + ((total_characters / 6) - total_words)) / 1337) - (given * received) / level) + (xp / 40)
+        
+        return level, xp, userrecord[0], karma
 
 class StatisticsHelpers():
     def add_message_stats(stats):

+ 1 - 1
commands/statistics.py

@@ -141,7 +141,7 @@ def do_command(self, connection, event):
                 connection.privmsg(replyto, "I am seeing you right now. For help type " + blue + self.helpchar + reset + ".")
             elif len(command.split()) == 2:
                 if not self.db.one("SELECT last_act_type FROM users WHERE LOWER(name)='" + command.split()[1] + "' AND network='" + self.network + "'"):
-                    connection.action(replyto, "has never seen " + red + command.split()[1] + reset + ".")
+                    connection.action(replyto, "has never seen " + red + trigger.split()[1] + reset + ".")
                 elif command.split()[1] == event.source.nick.lower():
                     connection.action(replyto, "holds up a mirror to " + event.source.nick + ".")
                 else:

+ 1 - 1
common/queries.py

@@ -1,3 +1,3 @@
 def create_ifnot_onrecord(self, user):
-    if not self.db.one("SELECT id FROM users WHERE name='" + user + "' AND network='" + self.network + "'"):    # User not on record.
+    if not self.db.one("SELECT id FROM users WHERE LOWER(name)=LOWER('" + user + "') AND network='" + self.network + "'"):    # User not on record.
         self.db.run("INSERT INTO users (name, network) VALUES ('" + user + "', '" + self.network + "')")   # Create record.