SYMBOL INDEX (201 symbols across 26 files) FILE: Controller/chat_screen.py class ChatScreenController (line 14) | class ChatScreenController: method __init__ (line 15) | def __init__(self, model): method get_view (line 20) | def get_view(self) -> View.ChatScreen.chat_screen: method task_finished (line 24) | def task_finished(self, chat_messages): method get_chat (line 29) | def get_chat(self, chat_id): method on_enter (line 33) | def on_enter(self, *args): method previous_screen (line 40) | def previous_screen(self): FILE: Controller/login_screen.py class LoginScreenController (line 22) | class LoginScreenController: method __init__ (line 24) | def __init__(self, model): method get_view (line 29) | def get_view(self) -> View.LoginScreen.login_screen: method check_files (line 32) | def check_files(self): method login (line 59) | def login(self): method show_decryption_error (line 78) | def show_decryption_error(self, error): method show_warning (line 90) | def show_warning(self, warning): method show_decryption_success (line 94) | def show_decryption_success(self, path): method update_dialog (line 98) | def update_dialog(self, msg): method decrypt_dbs (line 102) | def decrypt_dbs(self, key): method decrypt_db (line 127) | def decrypt_db(self, key, enc_db, dec_db): method on_tap_button_login (line 134) | def on_tap_button_login(self) -> NoReturn: FILE: Controller/main_screen.py class MainScreenController (line 12) | class MainScreenController: method __init__ (line 20) | def __init__(self, model): method get_view (line 24) | def get_view(self) -> View.MainScreen.main_screen: method on_tap_button_login (line 27) | def on_tap_button_login(self) -> NoReturn: method on_enter (line 31) | def on_enter(self, *args): method show_chat_screen (line 41) | def show_chat_screen(self, chat_id, user, jid): method clear_session (line 47) | def clear_session(self): method log_out (line 53) | def log_out(self, *args): FILE: Controller/template_screen.py class TemplateScreenController (line 14) | class TemplateScreenController: method __init__ (line 22) | def __init__(self, model): method get_view (line 27) | def get_view(self) -> View.TemplateScreen.template_screen: method on_tap_button_login (line 30) | def on_tap_button_login(self) -> NoReturn: FILE: Model/base_model.py class BaseScreenModel (line 10) | class BaseScreenModel: method add_observer (line 15) | def add_observer(self, observer) -> None: method remove_observer (line 18) | def remove_observer(self, observer) -> None: method notify_observers (line 21) | def notify_observers(self, name_screen: str) -> None: FILE: Model/chat_screen.py class ChatScreenModel (line 5) | class ChatScreenModel(BaseScreenModel): method __init__ (line 10) | def __init__(self, base): method get_chat (line 13) | def get_chat(self, chat_id): FILE: Model/login_screen.py class LoginScreenModel (line 4) | class LoginScreenModel(BaseScreenModel): method __init__ (line 5) | def __init__(self, base): FILE: Model/main_screen.py class MainScreenModel (line 5) | class MainScreenModel(BaseScreenModel): method __init__ (line 11) | def __init__(self, base): method set_base (line 14) | def set_base(self, base): method get_contact_chats (line 17) | def get_contact_chats(self): method get_group_chats (line 32) | def get_group_chats(self): method get_calls (line 36) | def get_calls(self, how_many=None): method get_status (line 50) | def get_status(self, jid): FILE: Model/template_screen.py class TemplateScreenModel (line 4) | class TemplateScreenModel(BaseScreenModel): method __init__ (line 9) | def __init__(self, base): FILE: Utility/Utils.py function fix_emojis (line 22) | def fix_emojis(text, font): function strip_quotes (line 29) | def strip_quotes(path): function check_path (line 34) | def check_path(path=None): FILE: Utility/observer.py class Observer (line 11) | class Observer: method model_is_changed (line 14) | def model_is_changed(self): FILE: View/ChatScreen/chat_screen.py class RV (line 26) | class RV(RecycleView): method __init__ (line 27) | def __init__(self, **kwargs): class Attachment (line 31) | class Attachment(ButtonBehavior, RectangularRippleBehavior, CommonElevat... method __init__ (line 32) | def __init__(self, **kwargs): class Quote (line 36) | class Quote(MLabel): method __init__ (line 37) | def __init__(self, **kwargs): class ChatMessage (line 41) | class ChatMessage(RecycleDataViewBehavior, MDBoxLayout): method dialog_dismiss (line 53) | def dialog_dismiss(self): method hide_dialog (line 56) | def hide_dialog(self): method show_dialog (line 59) | def show_dialog(self, msg, title=None, auto_dismiss=True) -> NoReturn: method open_media (line 72) | def open_media(self, file_path): method get_msg_widget (line 87) | def get_msg_widget(self): method refresh_view_attrs (line 90) | def refresh_view_attrs(self, rv, index, data): method refresh_view_layout (line 105) | def refresh_view_layout(self, rv, index, layout, viewport): class ChatScreenView (line 109) | class ChatScreenView(BaseScreenView): method __init__ (line 116) | def __init__(self, **kw): method dialog_dismiss (line 123) | def dialog_dismiss(self): method hide_dialog (line 126) | def hide_dialog(self): method show_dialog (line 129) | def show_dialog(self, msg, title=None, auto_dismiss=True) -> NoReturn: method show_chat_messages (line 141) | def show_chat_messages(self, chat_messages): method scroll_to_bottom (line 147) | def scroll_to_bottom(self): method model_is_changed (line 150) | def model_is_changed(self) -> None: FILE: View/LoginScreen/login_screen.py class TextFieldFileManager (line 28) | class TextFieldFileManager(MDRelativeLayout): method __init__ (line 33) | def __init__(self, **kwargs): method file_manager_open (line 40) | def file_manager_open(self): method select_path (line 44) | def select_path(self, path: str): method on_text (line 49) | def on_text(self, instance, value): method exit_manager (line 52) | def exit_manager(self, *args): method events (line 56) | def events(self, instance, keyboard, keycode, text, modifiers): method open_file_manager (line 64) | def open_file_manager(self, hint_text): class SettingsContent (line 69) | class SettingsContent(ScrollView): class About (line 73) | class About(BoxLayout): method __init__ (line 78) | def __init__(self, **kwargs): method open_link (line 91) | def open_link(self, instance, link): class LoginScreenView (line 95) | class LoginScreenView(BaseScreenView): method __init__ (line 97) | def __init__(self, **kw): method set_item (line 150) | def set_item(self, text__item): method dialog_dismiss (line 155) | def dialog_dismiss(self): method hide_dialog (line 158) | def hide_dialog(self): method show_dialog (line 162) | def show_dialog(self, msg, title=None, auto_dismiss=False) -> NoReturn: method on_enc_checkbox (line 176) | def on_enc_checkbox(self, state, *args): method open_settings (line 182) | def open_settings(self): method settings_cancel (line 186) | def settings_cancel(self, *args): method settings_save (line 189) | def settings_save(self, *args): method show_toast (line 227) | def show_toast(self, msg): method open_about (line 230) | def open_about(self): method open_github_page (line 233) | def open_github_page(self): method model_is_changed (line 236) | def model_is_changed(self) -> None: method on_kv_post (line 243) | def on_kv_post(self, base_widget): method save_fields (line 250) | def save_fields(self, *args): method on_pre_enter (line 260) | def on_pre_enter(self, *args): FILE: View/MainScreen/main_screen.py class Tab (line 21) | class Tab(MDFloatLayout, MDTabsBase): class MLabel (line 25) | class MLabel(MDLabel): method __init__ (line 26) | def __init__(self, **kwargs): class ChatListItem (line 30) | class ChatListItem(RecycleDataViewBehavior, MDCard): class CallListItem (line 39) | class CallListItem(RecycleDataViewBehavior, MDCard): class MainScreenView (line 50) | class MainScreenView(BaseScreenView): method __init__ (line 52) | def __init__(self, **kw): method show_dialog_wait (line 56) | def show_dialog_wait(self) -> NoReturn: method model_is_changed (line 62) | def model_is_changed(self) -> None: method show_chats_list (line 70) | def show_chats_list(self, contact_chats): method build_group_chat_list (line 80) | def build_group_chat_list(self, group_chats): method build_calls_list (line 89) | def build_calls_list(self, calls): FILE: View/base_screen.py class BaseScreenView (line 9) | class BaseScreenView(MDScreen, Observer): method __init__ (line 39) | def __init__(self, **kw): FILE: dbs/abstract_db.py class AbstractDatabase (line 16) | class AbstractDatabase(ABC): method __init__ (line 18) | def __init__(self, msgstore, wa=None, schema=None): method fetch_contact_chats (line 35) | def fetch_contact_chats(self): method fetch_group_chats (line 57) | def fetch_group_chats(self): method fetch_calls (line 79) | def fetch_calls(self, how_many=None): method fetch_chat (line 105) | def fetch_chat(self, chat_id): method load_contacts (line 137) | def load_contacts(self, wa_cursor): method check_database_schema (line 154) | def check_database_schema(self): FILE: dbs/v1/db.py class Database (line 7) | class Database(AbstractDatabase): method __init__ (line 9) | def __init__(self, msgstore, wa): method fetch_contact_chats (line 50) | def fetch_contact_chats(self): method fetch_group_chats (line 71) | def fetch_group_chats(self): method fetch_calls (line 89) | def fetch_calls(self, how_many=None): method fetch_chat (line 107) | def fetch_chat(self, chat_id): FILE: dbs/v2/db.py class Database (line 6) | class Database(AbstractDatabase): method __init__ (line 8) | def __init__(self, msgstore, wa): method fetch_contact_chats (line 50) | def fetch_contact_chats(self): method fetch_group_chats (line 66) | def fetch_group_chats(self): method fetch_calls (line 83) | def fetch_calls(self, how_many=None): method fetch_chat (line 102) | def fetch_chat(self, chat_id): FILE: dbs/v3/db.py class Database (line 7) | class Database(AbstractDatabase): method __init__ (line 9) | def __init__(self, msgstore, wa): method fetch_contact_chats (line 79) | def fetch_contact_chats(self): method fetch_group_chats (line 95) | def fetch_group_chats(self): method fetch_calls (line 111) | def fetch_calls(self, how_many=None): method fetch_chat (line 129) | def fetch_chat(self, chat_id): FILE: decryption/dbs/WhatsAppCrypt14Crypt15Decrypter/decrypt14_15.py class SimpleLog (line 79) | class SimpleLog: method __init__ (line 82) | def __init__(self, verbose: bool, force: bool): method v (line 86) | def v(self, msg: str): method i (line 92) | def i(msg: str): method e (line 96) | def e(self, msg: str): method f (line 104) | def f(msg: str): function from_hex (line 110) | def from_hex(logger, string: str) -> bytes: function parsecmdline (line 128) | def parsecmdline() -> argparse.Namespace: class Key (line 163) | class Key: method is_crypt15 (line 174) | def is_crypt15(self): method __str__ (line 177) | def __str__(self): method __init__ (line 195) | def __init__(self, logger, key_file_name): method load_crypt14 (line 231) | def load_crypt14(self, logger, keyfile: bytes): method load_crypt15 (line 288) | def load_crypt15(self, logger, keyfile: bytes): function oscillate (line 317) | def oscillate(n: int, n_min: int, n_max: int) -> collections.Iterable: function test_decompression (line 363) | def test_decompression(logger, test_data: bytes) -> bool: function find_data_offset (line 387) | def find_data_offset(logger, header: bytes, iv_offset: int, key: bytes, ... function guess_offsets (line 415) | def guess_offsets(logger, key: bytes, file_hash: _Hash, encrypted: Buffe... function javaintlist2bytes (line 469) | def javaintlist2bytes(barr: javaobj.beans.JavaArray) -> bytes: function check_crypt12 (line 476) | def check_crypt12(logger, file_hash, key, encrypted): function parse_protobuf (line 534) | def parse_protobuf(logger, file_hash: _Hash, key: Key, encrypted): function decrypt (line 661) | def decrypt(logger, file_hash: _Hash, cipher, encrypted, decrypted, buff... function main (line 878) | def main(): FILE: decryption/dbs/WhatsAppCrypt14Crypt15Decrypter/utils/WA_HMACSHA256_Loop.java class WA_HMACSHA256_Loop (line 13) | public class WA_HMACSHA256_Loop { method nestedHMACSHA256NoKey (line 15) | public static byte[] nestedHMACSHA256NoKey(byte[] first_iteration_data... method nestedHmacSHA256 (line 18) | public static byte[] nestedHmacSHA256(byte[] first_iteration_data, byt... FILE: decryption/dbs/WhatsAppCrypt14Crypt15Decrypter/utils/hex_string_to_encrypted_backup_key.py class Log (line 19) | class Log: method i (line 23) | def i(msg: str): method f (line 28) | def f(msg: str): function from_hex (line 34) | def from_hex(string: str) -> bytes: function parsecmdline (line 50) | def parsecmdline() -> argparse.Namespace: function create_class_description (line 59) | def create_class_description() -> javaobj.JavaClass: function serialize (line 68) | def serialize(j_key: javaobj.JavaByteArray, o_stream): function create_encrypted_backup_key_file (line 82) | def create_encrypted_backup_key_file(ikey: str, output): function main (line 92) | def main(): FILE: decryption/dbs/WhatsAppCrypt14Crypt15Decrypter/utils/password_data_key_to_hashcat.py class Log (line 26) | class Log: method i (line 30) | def i(msg: str): method f (line 35) | def f(msg: str): function parsecmdline (line 41) | def parsecmdline() -> argparse.Namespace: function barrtoint (line 49) | def barrtoint(barr: javaobj.beans.BlockData) -> int: function javaintlist2bytes (line 54) | def javaintlist2bytes(barr: javaobj.beans.JavaArray) -> bytes: function read_password_data_key (line 62) | def read_password_data_key(passworddatakeyfilestream: argparse.FileType(... function main (line 99) | def main(): FILE: decryption/dbs/WhatsAppCrypt14Crypt15Decrypter/utils/protobuf_bruteforce.py function parsecmdline (line 15) | def parsecmdline() -> argparse.Namespace: function load_file (line 27) | def load_file(file_name: str, byte_range=0, reverse=False) -> bytes: function get_truncated_stream (line 57) | def get_truncated_stream(content: bytes, start: int, end: int) -> BytesIO: function main (line 62) | def main(): function protoparse (line 89) | def protoparse(stream): class Message (line 93) | class Message: function search (line 99) | def search(whole_file: bytes, keep_going: bool, offset=0): FILE: decryption/dbs/decrypt_db.py function decrypt_db (line 21) | def decrypt_db(keyfile: str, encrypted, decrypted, verbose=True, force=T... FILE: main.py class whatsappMsgstoreViewer (line 55) | class whatsappMsgstoreViewer(MDApp): method __init__ (line 60) | def __init__(self, **kwargs): method load_db (line 100) | def load_db(self): method build_app (line 118) | def build_app(self) -> MDScreenManager: function run (line 153) | def run():