本文整理汇总了Python中redditisgtk.api.get_reddit_api函数的典型用法代码示例。如果您正苦于以下问题:Python get_reddit_api函数的具体用法?Python get_reddit_api怎么用?Python get_reddit_api使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_reddit_api函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, start_sub='/r/all'):
Gtk.Window.__init__(self, title='Reddit is Gtk+',
icon_name='reddit-is-a-dead-bird')
self.add_events(Gdk.EventMask.KEY_PRESS_MASK)
self.set_default_size(600, 600)
screen = Gdk.Screen.get_default()
css_provider = Gtk.CssProvider.get_default()
css_provider.load_from_resource('/today/sam/reddit-is-gtk/style.css')
context = Gtk.StyleContext()
context.add_provider_for_screen(screen, css_provider,
Gtk.STYLE_PROVIDER_PRIORITY_USER)
self._paned = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
self.add(self._paned)
self._paned.show()
self._webview = FullscreenableWebview()
self._webview_bin = ProgressContainer(self._webview)
self._comments = None
self._stack = Gtk.Stack()
self._stack.connect('notify::visible-child', self.__stack_child_cb)
self._paned.add2(self._stack)
self._stack.show()
self._make_header()
self._sublist = SubList()
self._sublist.new_other_pane.connect(self.__new_other_pane_cb)
self._paned.add1(self._sublist)
self._sublist.show()
self._sublist.goto(start_sub)
get_reddit_api().request_failed.connect(self.__request_failed_cb)
示例2: __toggled_cb
def __toggled_cb(self, toggle):
self._set_label()
self._button.props.sensitive = False
get_reddit_api().set_subscribed(self._subreddit_name,
self._button.props.active,
self.__subscribe_cb)
示例3: __message_done_cb
def __message_done_cb(self, session, msg, user_data):
id, callback = user_data
data = msg.props.response_body.data
if id not in self._tokens:
self._tokens[id] = {}
if data is None:
# TODO: Show this error to the user
print('Token refresh failed')
from redditisgtk.api import describe_soup_transport_error
print(data,
msg.props.status_code,
describe_soup_transport_error(msg.props.status_code, msg))
return
# We must keep some things we only get the 1st time, eg.
# the refresh token
self._tokens[id].update(json.loads(data))
self._tokens[id]['time'] = time.time()
self.save()
self.token_changed.emit(self._tokens[id])
self.sign_in_status.emit('', True)
if callback is not None:
callback()
if 'username' not in self._tokens[id]:
# api imports us, so we must wait to import them
from redditisgtk.api import get_reddit_api
get_reddit_api().send_request(
'GET', '/api/v1/me', self.__whoami_cb, user_data=id)
示例4: read_toggled_cb
def read_toggled_cb(self, toggle):
if toggle.props.active:
get_reddit_api().read_message(self.data['name'])
self._read.get_style_context().remove_class('unread')
self._read.props.active = True
self._read.props.sensitive = False
self._read.props.label = 'Read'
示例5: __subscribe_toggled_cb
def __subscribe_toggled_cb(self, toggle):
self._subscribe.props.label = 'Subscribing...' \
if self._subscribe.props.active else 'Unsubscribing...'
self._subscribe.props.sensitive = False
get_reddit_api().set_subscribed(self._subreddit_name,
self._subscribe.props.active,
self.__subscribe_cb)
示例6: __init__
def __init__(self, parent, **kwargs):
VScrollingPopover.__init__(self, **kwargs)
self._parent = parent
get_reddit_api().subs_changed.connect(self.__changed_cb)
get_reddit_api().user_changed.connect(self.__changed_cb)
self._parent.connect('activate', self.__changed_cb)
self._rebuild()
示例7: __init__
def __init__(self, parent, **kwargs):
VScrollingPopover.__init__(self, **kwargs)
self.get_style_context().add_class('subentry-palette')
self._parent = parent
self._filter = None
get_reddit_api().subs_changed.connect(self.__changed_cb)
get_reddit_api().user_changed.connect(self.__changed_cb)
self._rebuild()
示例8: __init__
def __init__(self, uri):
Gtk.Bin.__init__(self)
self._spinner = Gtk.Spinner()
self.add(self._spinner)
self._spinner.show()
self._image = Gtk.Image()
self.add(self._image)
get_reddit_api().download_thumb(uri, self.__message_done_cb)
示例9: __init__
def __init__(self, start_sub=None):
Gtk.Window.__init__(self, title='Something For Reddit',
icon_name='reddit-is-a-dead-bird')
self.add_events(Gdk.EventMask.KEY_PRESS_MASK)
self.set_default_size(600, 600)
self.set_wmclass("reddit-is-gtk", "Something For Reddit")
settings = Gtk.Settings.get_default()
screen = Gdk.Screen.get_default()
css_provider = Gtk.CssProvider.get_default()
if settings.props.gtk_application_prefer_dark_theme:
css_provider.load_from_resource(
'/today/sam/reddit-is-gtk/style.dark.css')
else:
css_provider.load_from_resource(
'/today/sam/reddit-is-gtk/style.css')
context = Gtk.StyleContext()
context.add_provider_for_screen(screen, css_provider,
Gtk.STYLE_PROVIDER_PRIORITY_USER)
self._paned = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
self.add(self._paned)
self._paned.show()
self._webview = FullscreenableWebview()
self._webview_bin = ProgressContainer(self._webview)
self._comments = None
self._stack = Gtk.Stack()
self._stack.connect('notify::visible-child', self.__stack_child_cb)
self._paned.add2(self._stack)
#self._paned.child_set_property(self._stack, 'shrink', True)
self._stack.show()
if start_sub is None:
start_sub = get_settings()['default-sub']
self._sublist = SubList()
self._sublist.new_other_pane.connect(self.__new_other_pane_cb)
self._paned.add1(self._sublist)
#self._paned.child_set_property(self._sublist, 'shrink', True)
self._sublist.show()
self._sublist.goto(start_sub)
self._make_header(start_sub)
left = Gtk.SizeGroup(mode=Gtk.SizeGroupMode.HORIZONTAL)
left.add_widget(self._left_header)
left.add_widget(self._sublist)
self._paned.connect('notify::position',
self.__notify_position_cb,
self._header_paned)
self._header_paned.connect('notify::position',
self.__notify_position_cb,
self._paned)
get_reddit_api().request_failed.connect(self.__request_failed_cb)
示例10: __row_selected_cb
def __row_selected_cb(self, listbox, row):
if row is None:
return
row.get_style_context().add_class('read')
if 'context' in row.data:
# We need to download first
# TODO: Progress indicator for user
get_reddit_api().get_list(row.data['context'],
self.__got_context_list_cb)
else:
self._handle_activate(row.data)
示例11: goto
def goto(self, sub):
'''
Sub could be '/r/gnu+linux' or '/r/rct/hot?t=month
or even '/message/inbox'
'''
if self._msg is not None:
get_reddit_api().cancel(self._msg)
self._sub = sub
self.remove(self.get_child())
self.add(self._spinner)
self._spinner.show()
self._spinner.start()
self._msg = get_reddit_api().get_list(sub, self.__got_list_cb)
示例12: __init__
def __init__(self, subreddit_name, **kwargs):
'''
Args:
subreddit_name (str): name like 'linux' or 'gnu',
NOT with the /r/
'''
VScrollingPopover.__init__(self, **kwargs)
spinner = Gtk.Spinner()
self.set_scrolled_child(spinner)
spinner.show()
self._subreddit_name = subreddit_name
get_reddit_api().get_subreddit_info(subreddit_name, self.__got_info_cb)
示例13: __init__
def __init__(self, name):
Gtk.ListBoxRow.__init__(self, selectable=False)
self._name = name
self._builder = Gtk.Builder.new_from_resource(
'/today/sam/reddit-is-gtk/user-about.ui')
self._g = self._builder.get_object
self.add(self._g('box'))
self._g('name').props.label = self._name
get_reddit_api().get_user_info(
self._name, self.__got_info_cb)
示例14: _call_access_token
def _call_access_token(self, data, id, callback=None):
msg = Soup.Message.new(
'POST', 'https://www.reddit.com/api/v1/access_token')
msg.props.priority = Soup.MessagePriority.VERY_HIGH
body = urllib.parse.urlencode(data)
msg.set_request(
'application/x-www-form-urlencoded',
Soup.MemoryUse.COPY, bytes(body, 'utf8'))
msg.props.request_headers.append(
'Authorization', 'Basic V0NOM2pxb0oxLTByMFE6Cg==')
# api imports us, so we must wait to import them
from redditisgtk.api import get_reddit_api
get_reddit_api().session.queue_message(
msg, self.__message_done_cb, (id, callback))
示例15: __request_failed_cb
def __request_failed_cb(self, api, msg, info):
dialog = Gtk.Dialog(use_header_bar=True)
label = Gtk.Label(label=info)
dialog.get_content_area().add(label)
label.show()
dialog.add_button('Retry', Gtk.ResponseType.ACCEPT)
dialog.add_button(':shrug-shoulders:', Gtk.ResponseType.REJECT)
dialog.set_default_response(Gtk.ResponseType.ACCEPT)
dialog.props.transient_for = self
response = dialog.run()
if response == Gtk.ResponseType.ACCEPT:
get_reddit_api().resend_message(msg)
dialog.destroy()