123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- #!/usr/bin/env python3
- """
- Simple scripts which replaces the old emotion script constants to the new
- script constants.
- The actual replacement list is in 'emotion_dict'.
- Related pull request: https://github.com/rathena/rathena/pull/2527
- Note: This only applies the constant changes. You still have to check your scripts
- for 'unitemote' (command was removed) and 'emotion' using the third parameter ('target name').
- """
- import fileinput
- import re
- import os
- convert_folders = ["../npc", "../src"]
- wl_file_extensions = ['.hpp', '.h', '.cpp', '.c', '.txt' ]
- bl_files = ['script_constants.hpp']
- BACKUP_EXT = '.bak'
- emotion_dict = {
- 'E_GASP': 'ET_SURPRISE',
- 'E_WHAT': 'ET_QUESTION',
- 'E_HO': 'ET_DELIGHT',
- 'E_LV': 'ET_THROB',
- 'E_SWT': 'ET_SWEAT',
- 'E_IC': 'ET_AHA',
- 'E_AN': 'ET_FRET',
- 'E_AG': 'ET_ANGER',
- 'E_CASH': 'ET_MONEY',
- 'E_DOTS': 'ET_THINK',
- 'E_SCISSORS': 'ET_SCISSOR',
- 'E_ROCK': 'ET_ROCK',
- 'E_PAPER': 'ET_WRAP',
- 'E_KOREA': 'ET_FLAG',
- 'E_LV2': 'ET_BIGTHROB',
- 'E_THX': 'ET_THANKS',
- 'E_WAH': 'ET_KEK',
- 'E_SRY': 'ET_SORRY',
- 'E_HEH': 'ET_SMILE',
- 'E_SWT2': 'ET_PROFUSELY_SWEAT',
- 'E_HMM': 'ET_SCRATCH',
- 'E_NO1': 'ET_BEST',
- 'E_NO': 'ET_STARE_ABOUT',
- 'E_OMG': 'ET_HUK',
- 'E_OH': 'ET_O',
- 'E_X': 'ET_X',
- 'E_HLP': 'ET_HELP',
- 'E_GO': 'ET_GO',
- 'E_SOB': 'ET_CRY',
- 'E_GG': 'ET_KIK',
- 'E_KIS': 'ET_CHUP',
- 'E_KIS2': 'ET_CHUPCHUP',
- 'E_PIF': 'ET_HNG',
- 'E_OK': 'ET_OK',
- 'E_MUTE': 'ET_CHAT_PROHIBIT',
- 'E_INDONESIA': 'ET_INDONESIA_FLAG',
- 'E_BZZ': 'ET_STARE',
- 'E_RICE': 'ET_HUNGRY',
- 'E_AWSM': 'ET_COOL',
- 'E_MEH': 'ET_MERONG',
- 'E_SHY': 'ET_SHY',
- 'E_PAT': 'ET_GOODBOY',
- 'E_MP': 'ET_SPTIME',
- 'E_SLUR': 'ET_SEXY',
- 'E_COM': 'ET_COMEON',
- 'E_YAWN': 'ET_SLEEPY',
- 'E_GRAT': 'ET_CONGRATULATION',
- 'E_HP': 'ET_HPTIME',
- 'E_PHILIPPINES': 'ET_PH_FLAG',
- 'E_MALAYSIA': 'ET_MY_FLAG',
- 'E_SINGAPORE': 'ET_SI_FLAG',
- 'E_BRAZIL': 'ET_BR_FLAG',
- 'E_FLASH': 'ET_SPARK',
- 'E_SPIN': 'ET_CONFUSE',
- 'E_SIGH': 'ET_OHNO',
- 'E_DUM': 'ET_HUM',
- 'E_LOUD': 'ET_BLABLA',
- 'E_OTL': 'ET_OTL',
- 'E_DICE1': 'ET_DICE1',
- 'E_DICE2': 'ET_DICE2',
- 'E_DICE3': 'ET_DICE3',
- 'E_DICE4': 'ET_DICE4',
- 'E_DICE5': 'ET_DICE5',
- 'E_DICE6': 'ET_DICE6',
- 'E_INDIA': 'ET_INDIA_FLAG',
- 'E_LUV': 'ET_LUV',
- 'E_RUSSIA': 'ET_FLAG8',
- 'E_VIRGIN': 'ET_FLAG9',
- 'E_MOBILE': 'ET_MOBILE',
- 'E_MAIL': 'ET_MAIL',
- 'E_CHINESE': 'ET_ANTENNA0',
- 'E_ANTENNA1': 'ET_ANTENNA1',
- 'E_ANTENNA2': 'ET_ANTENNA2',
- 'E_ANTENNA3': 'ET_ANTENNA3',
- 'E_HUM': 'ET_HUM2',
- 'E_ABS': 'ET_ABS',
- 'E_OOPS': 'ET_OOPS',
- 'E_SPIT': 'ET_SPIT',
- 'E_ENE': 'ET_ENE',
- 'E_PANIC': 'ET_PANIC',
- 'E_WHISP': 'ET_WHISP',
- 'E_YUT1': 'ET_YUT1',
- 'E_YUT2': 'ET_YUT2',
- 'E_YUT3': 'ET_YUT3',
- 'E_YUT4': 'ET_YUT4',
- 'E_YUT5': 'ET_YUT5',
- 'E_YUT6': 'ET_YUT6',
- 'E_YUT7': 'ET_YUT7',
- 'E_MAX': 'ET_MAX'
- }
- pattern = re.compile(r'\b(' + '|'.join(emotion_dict.keys()) + r')\b', re.IGNORECASE)
- def revert_to_backup(filename):
- os.rename(filename+BACKUP_EXT, filename)
- def replace_emoticons_in_file(filename):
- remove_backup = True # only keep backup if the original file changed
- with fileinput.FileInput(filename, inplace=True, backup=BACKUP_EXT) as fiFile:
- try:
- for line in fiFile:
- new_line, rpl_cnt = pattern.subn(lambda x: emotion_dict[x.group().upper()], line)
- print(new_line, end='')
- if rpl_cnt > 0:
- remove_backup = False
- if remove_backup:
- os.remove(filename+BACKUP_EXT)
- except UnicodeDecodeError:
- # Encoding error, reapply the backup
- revert_to_backup(filename)
-
- fileiter = (os.path.join(root, f)
- for conv_folder in convert_folders
- for root, _, files in os.walk(conv_folder)
- for f in files
- if any([f.endswith(wl) for wl in wl_file_extensions])
- if not any([bl in f for bl in bl_files])
- )
- for f in fileiter:
- print("Updating file", f)
- replace_emoticons_in_file(f)
-
-
|