File: special_functions.rst

package info (click to toggle)
twython 3.8.2%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 600 kB
  • sloc: python: 1,793; makefile: 148; sh: 49
file content (105 lines) | stat: -rw-r--r-- 4,191 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
.. special-functions:

Special Functions
=================

This section covers methods to are part of Twython but not necessarily connected to the Twitter API.

*******************************************************************************

Cursor
------

This function returns a generator for Twitter API endpoints that are able to be pagintated in some way (either by cursor or since_id parameter)

The Old Way
^^^^^^^^^^^

.. code-block:: python

    from twython import Twython

    twitter = Twython(APP_KEY, APP_SECRET,
                      OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

    results = twitter.search(q='twitter')
    if results.get('statuses'):
        for result in results['statuses']:
            print(result['id_str'])

The New Way
^^^^^^^^^^^

.. code-block:: python

    from twython import Twython

    twitter = Twython(APP_KEY, APP_SECRET,
                      OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

    results = twitter.cursor(twitter.search, q='twitter')
    for result in results:
        print(result['id_str'])

Another example:

.. code-block:: python

    results = twitter.cursor(twitter.get_mentions_timeline)
    for result in results:
        print(result['id_str'])

Items vs Pages
^^^^^^^^^^^^^^

By default, the cursor yields one item at a time. If instead you prefer to work with entire pages of results, specify ``return_pages=True`` as a keyword argument.

.. code-block:: python

    results = twitter.cursor(twitter.get_mentions_timeline, return_pages=True)
    # page is a list
    for page in results:
        for result in page:
            print(result['id_str'])


HTML for Tweet
--------------

This function takes a tweet object received from the Twitter API and returns an string formatted in HTML with the links, user mentions and hashtags replaced.

.. code-block:: python

    from twython import Twython

    twitter = Twython(APP_KEY, APP_SECRET,
                      OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

    user_tweets = twitter.get_user_timeline(screen_name='mikehelmick',
                                            include_rts=True)
    for tweet in user_tweets:
        tweet['text'] = Twython.html_for_tweet(tweet)
        print(tweet['text'])

The above code takes all the tweets from a specific users timeline, loops over them and replaces the value of ``tweet['text']`` with HTML.

So:

    http://t.co/FCmXyI6VHd is #cool, lol! @mikehelmick shd #checkitout. Love, @__twython__ $IBM https://t.co/67pwRvY6z9 http://t.co/N6InAO4B71

will be replaced with:

    <a href="http://t.co/FCmXyI6VHd" class="twython-url">google.com</a> is <a href="https://twitter.com/search?q=%23cool" class="twython-hashtag">#cool</a>, lol! <a href="https://twitter.com/mikehelmick" class="twython-mention">@mikehelmick</a> shd <a href="https://twitter.com/search?q=%23checkitout" class="twython-hashtag">#checkitout</a>. Love, <a href="https://twitter.com/__twython__" class="twython-mention">@__twython__</a> <a href="https://twitter.com/?q=%24IBM" class="twython-symbol">$IBM</a> <a href="https://t.co/67pwRvY6z9" class="twython-url">github.com</a> <a href="http://t.co/N6InAO4B71" class="twython-media">pic.twitter.com/N6InAO4B71</a>

.. note:: When converting the string to HTML we add a class to each HTML tag so that you can maninpulate the DOM later on.

- For urls that are replaced we add ``class="twython-url"`` to the anchor tag
- For media urls that are replaced we add ``class="twython-media"`` to the anchor tag
- For user mentions that are replaced we add ``class="twython-mention"`` to the anchor tag
- For hashtags that are replaced we add ``class="twython-hashtag"`` to the anchor tag
- For symbols that are replaced we add ``class="twython-symbol"`` to the anchor tag

This function accepts two parameters: ``use_display_url`` and ``use_expanded_url``
By default, ``use_display_url`` is ``True``. Meaning the link displayed in the tweet text will appear as (ex. google.com, github.com)
If ``use_expanded_url`` is ``True``, it overrides ``use_display_url``. The urls will then be displayed as (ex. http://google.com, https://github.com)
If ``use_display_url`` and ``use_expanded_url`` are ``False``, short url will be used (t.co/xxxxx)