2021-07-02 17:22:24 -05:00
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
import platform
|
|
|
|
|
if platform.system() == "Windows":
|
|
|
|
|
from wxUI import dialogs, commonMessageDialogs
|
|
|
|
|
elif platform.system() == "Linux":
|
|
|
|
|
from gi.repository import Gtk
|
|
|
|
|
from gtkUI import dialogs, commonMessageDialogs
|
|
|
|
|
import widgetUtils
|
|
|
|
|
import logging
|
|
|
|
|
from tweepy.cursor import Cursor
|
|
|
|
|
from . import base
|
|
|
|
|
|
|
|
|
|
log = logging.getLogger("controller.buffers.twitter.listBuffer")
|
|
|
|
|
|
|
|
|
|
class ListBuffer(base.BaseBuffer):
|
|
|
|
|
def __init__(self, parent, function, name, sessionObject, account, sound=None, bufferType=None, list_id=None, *args, **kwargs):
|
|
|
|
|
super(ListBuffer, self).__init__(parent, function, name, sessionObject, account, sound=None, bufferType=None, *args, **kwargs)
|
|
|
|
|
self.users = []
|
|
|
|
|
self.list_id = list_id
|
|
|
|
|
self.kwargs["list_id"] = list_id
|
|
|
|
|
|
|
|
|
|
def start_stream(self, mandatory=False, play_sound=True, avoid_autoreading=False):
|
|
|
|
|
self.get_user_ids()
|
|
|
|
|
super(ListBuffer, self).start_stream(mandatory, play_sound, avoid_autoreading)
|
|
|
|
|
|
|
|
|
|
def get_user_ids(self):
|
2021-09-26 03:58:25 -05:00
|
|
|
|
for i in Cursor(self.session.twitter.get_list_members, list_id=self.list_id, include_entities=False, skip_status=True, count=5000).items():
|
2021-07-02 17:22:24 -05:00
|
|
|
|
if i.id not in self.users:
|
|
|
|
|
self.users.append(i.id)
|
|
|
|
|
|
|
|
|
|
def remove_buffer(self, force=False):
|
|
|
|
|
if force == False:
|
|
|
|
|
dlg = commonMessageDialogs.remove_buffer()
|
|
|
|
|
else:
|
|
|
|
|
dlg = widgetUtils.YES
|
|
|
|
|
if dlg == widgetUtils.YES:
|
|
|
|
|
if self.name[:-5] in self.session.settings["other_buffers"]["lists"]:
|
|
|
|
|
self.session.settings["other_buffers"]["lists"].remove(self.name[:-5])
|
|
|
|
|
if self.name in self.session.db:
|
|
|
|
|
self.session.db.pop(self.name)
|
|
|
|
|
self.session.settings.write()
|
|
|
|
|
return True
|
|
|
|
|
elif dlg == widgetUtils.NO:
|
|
|
|
|
return False
|