about summary refs log tree commit diff stats
path: root/src/xmpp/message.c
Commit message (Expand)AuthorAgeFilesLines
* Merge pull request #1566 from DebXWoody/bugfixing/oxMichael Vetter2021-07-011-36/+38
|\
| * OX bug fixDebXWoody2021-07-011-18/+17
| * OX bug fixingDebXWoody2021-06-291-6/+7
| * Bugfixes for OX implementationDebXWoody2021-06-281-27/+29
* | Add option to only allow messages from jids in rosterMichael Vetter2021-07-011-0/+22
|/
* XEP-0353: Display a notice when receiving a callMichael Vetter2021-06-091-0/+23
* Message received without body error logDebXWoody2021-06-031-2/+2
* Improved OMEMO loggingDebXWoody2021-05-281-0/+2
* message: correct type checkingMichael Vetter2021-05-141-1/+1
* Goodbye beautiful IDsMichael Vetter2021-04-141-8/+6
* message: parse stanzaid in MUC caseMichael Vetter2021-03-251-1/+9
* message: make _handle_error saferMichael Vetter2021-03-251-2/+4
* message: simplify _handle_headlineMichael Vetter2021-03-251-4/+2
* message: make _receipt_request_handler saferMichael Vetter2021-03-251-1/+1
* message: make _handle_receipt_received saferMichael Vetter2021-03-251-1/+5
* message: make _handle_groupchat saferMichael Vetter2021-03-251-0/+6
* message: simplify _handle_conferenceMichael Vetter2021-03-251-7/+5
* message: make _handle_form saferMichael Vetter2021-03-251-0/+3
* message: make _message_handler saferMichael Vetter2021-03-251-7/+9
* mesage: make _handle_ox_chat saferMichael Vetter2021-03-251-11/+27
* message: make _handle_chat saferMichael Vetter2021-03-251-0/+3
* message: make _handle_muc_private_message saferMichael Vetter2021-03-251-0/+7
* message: fix potential segfault in _receipt_request_handlerMichael Vetter2021-03-251-3/+7
* message: safeguard _handle_receipt_receivedMichael Vetter2021-03-251-15/+17
* message: reorder _handle_groupchatMichael Vetter2021-03-251-12/+9
* message: fix possible segfault in _handle_conferenceMichael Vetter2021-03-251-19/+23
* message: fix possible segfault in _handle_muc_userMichael Vetter2021-03-251-0/+4
* message: fix possible segfault in _message_handlerMichael Vetter2021-03-251-3/+3
* Add support to approve MUC voice requestsMichael Vetter2021-03-171-0/+34
* MUC: Add voice requestThorben Günther2021-03-121-0/+12
* Remove forgotten debug lineMichael Vetter2021-02-151-1/+0
* Use correct time for MAM messagesMichael Vetter2021-02-041-8/+17
* Update copyrightMichael Vetter2021-01-081-1/+1
* Print all error stanzasMichael Vetter2020-10-301-5/+5
* Enable _handle_ox_chat() payload/body decryptionMichael Vetter2020-10-091-3/+0
* Replace stanza_get_child_by_name_and_ns with xmpp_stanza_get_child_by_name_an...Michael Vetter2020-09-301-4/+4
* Fix memory leak in _handle_chat()Dmitry Podgorny2020-08-071-21/+7
* Parse stanza-idMichael Vetter2020-07-231-5/+34
* Apply coding styleMichael Vetter2020-07-071-272/+272
* Revert "Apply coding style"Michael Vetter2020-07-071-278/+278
* Apply coding styleMichael Vetter2020-07-071-278/+278
* message.c: Use message->to_jid instead of to_jidMichael Vetter2020-07-031-1/+1
* message.c: _handle_carbons() check from field outside of functionMichael Vetter2020-07-031-15/+17
* message.c: Dont duplicate code in _handle_carbon and _handle_chatMichael Vetter2020-07-031-111/+66
* message.c: Remove from/to setting out of conditionMichael Vetter2020-07-031-6/+3
* message.c: Small code improvementsMichael Vetter2020-07-031-16/+16
* message.c: Put XEP-0085 code in helper functionMichael Vetter2020-07-031-18/+25
* Change formattingMichael Vetter2020-07-031-1/+2
* handle_headline(): Free text correctlyMichael Vetter2020-07-031-0/+2
* Handle headline stanzaStefan Kropp2020-07-031-1/+14
p">: filenames = [] for fname in listdir(self.path): if not self.settings.show_hidden and fname[0] == '.': continue if isinstance(self.filter, str) and self.filter in fname: continue filenames.append(join(self.path, fname)) self.scroll_offset = 0 self.filenames = filenames self.infostring = ' %d' % len(self.filenames) # update the infostring files = [] for name in self.filenames: if isdir(name): f = Directory(name) else: f = File(name) f.load() files.append(f) self.files = files self.old_directories_first = None # self.sort() if len(self.files) > 0: if self.pointed_file is not None: self.move_pointer_to_file_path(self.pointed_file) # if self.pointed_file is None: # self.correct_pointer() else: self.filenames = None self.files = None self.infostring = BAD_INFO def sort(self): """Sort the containing files""" if self.files is None: return old_pointed_file = self.pointed_file self.files.sort(key = sort_by_basename) if self.settings.directories_first: self.files.sort(key = sort_by_directory) if self.pointed_index is not None: self.move_pointer_to_file_path(old_pointed_file) else: self.correct_pointer() self.old_directories_first = self.settings.directories_first def sort_if_outdated(self): """Sort the containing files if they are outdated""" if self.old_directories_first != self.settings.directories_first: self.sort() # Notice: fm.env.cf should always point to the current file. If you # modify the current directory with this function, make sure # to update fm.env.cf aswell. def move_pointer(self, relative=0, absolute=None): """Move the index pointer""" if self.empty(): return i = self.pointed_index if isinstance(absolute, int): if absolute < 0: absolute = len(self.files) + absolute i = absolute if isinstance(relative, int): i += relative self.pointed_index = i self.correct_pointer() return self.pointed_file def move_pointer_to_file_path(self, path): """Move the index pointer to the index of the file object with the given path. """ if path is None: return try: path = path.path except AttributeError: pass self.load_content_once() if self.empty(): return i = 0 for f in self.files: if f.path == path: self.move_pointer(absolute = i) return True i += 1 return False def search(self, arg, direction = 1): """Search for a regular expression""" if self.empty() or arg is None: return False elif hasattr(arg, 'search'): fnc = lambda x: arg.search(x.basename) else: fnc = lambda x: arg in x.basename length = len(self) if direction > 0: generator = ((self.pointed_index + (x + 1)) % length for x in range(length-1)) else: generator = ((self.pointed_index - (x + 1)) % length for x in range(length-1)) for i in generator: _file = self.files[i] if fnc(_file): self.pointed_index = i self.pointed_file = _file return True return False def correct_pointer(self): """make sure the pointer is in the valid range of: 0:len(self.files)-1 (or None if directory is empty.) """ if self.files is None or len(self.files) == 0: self.pointed_index = None self.pointed_file = None else: i = self.pointed_index if i is None: i = 0 if i >= len(self.files): i = len(self.files) - 1 if i < 0: i = 0 self.pointed_index = i self.pointed_file = self[i] def load_content_once(self): """Load the contents of the directory if not done yet""" if not self.content_loaded: self.load_content() return True return False def load_content_if_outdated(self): """Load the contents of the directory if it's outdated or not done yet """ if self.load_content_once(): return True if self.old_show_hidden != self.settings.show_hidden: self.old_show_hidden = self.settings.show_hidden self.load_content() return True import os real_mtime = os.stat(self.path).st_mtime cached_mtime = self.stat.st_mtime if real_mtime != cached_mtime: self.load_content() return True return False def empty(self): """Is the directory empty?""" return self.files is None or len(self.files) == 0 def __nonzero__(self): """Always True""" return True def __len__(self): """The number of containing files""" if not self.accessible: raise ranger.fsobject.NotLoadedYet() return len(self.files) def __getitem__(self, key): """Get the file by its index""" if not self.accessible: raise ranger.fsobject.NotLoadedYet() return self.files[key] def __eq__(self, other): """Check for equality of the directories paths""" return isinstance(other, Directory) and self.path == other.path def __neq__(self, other): """Check for inequality of the directories paths""" return not self.__eq__(other)