Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Zahra Rajabi
tweepy
Commits
8516642d
Commit
8516642d
authored
Dec 01, 2013
by
Joshua Roesslein
Browse files
Merge pull request #365 from scottbarr/master
SSL related changes submitted by @almost in pull request tweepy/132
parents
517a0f25
3315d5a1
Changes
1
Show whitespace changes
Inline
Side-by-side
tweepy/streaming.py
View file @
8516642d
...
...
@@ -7,6 +7,7 @@ import httplib
from
socket
import
timeout
from
threading
import
Thread
from
time
import
sleep
import
ssl
from
tweepy.models
import
Status
from
tweepy.api
import
API
...
...
@@ -61,6 +62,10 @@ class StreamListener(object):
"""Called when a new status arrives"""
return
def
on_exception
(
self
,
exception
):
"""Called when an unhandled exception occurs."""
return
def
on_delete
(
self
,
status_id
,
user_id
):
"""Called when a delete notice arrives for a status"""
return
...
...
@@ -96,8 +101,10 @@ class Stream(object):
self
.
running
=
False
self
.
timeout
=
options
.
get
(
"timeout"
,
300.0
)
self
.
retry_count
=
options
.
get
(
"retry_count"
)
self
.
retry_time
=
options
.
get
(
"retry_time"
,
10.0
)
self
.
snooze_time
=
options
.
get
(
"snooze_time"
,
5.0
)
self
.
retry_time_start
=
options
.
get
(
"retry_time"
,
10.0
)
self
.
retry_time_cap
=
options
.
get
(
"retry_time_cap"
,
240.0
)
self
.
snooze_time_start
=
options
.
get
(
"snooze_time"
,
0.25
)
self
.
snooze_time_cap
=
options
.
get
(
"snooze_time_cap"
,
16
)
self
.
buffer_size
=
options
.
get
(
"buffer_size"
,
1500
)
if
options
.
get
(
"secure"
,
True
):
self
.
scheme
=
"https"
...
...
@@ -108,6 +115,8 @@ class Stream(object):
self
.
headers
=
options
.
get
(
"headers"
)
or
{}
self
.
parameters
=
None
self
.
body
=
None
self
.
retry_time
=
self
.
retry_time_start
self
.
snooze_time
=
self
.
snooze_time_start
def
_run
(
self
):
# Authenticate
...
...
@@ -135,17 +144,26 @@ class Stream(object):
break
error_counter
+=
1
sleep
(
self
.
retry_time
)
self
.
retry_time
=
min
(
self
.
retry_time
*
2
,
self
.
retry_time_cap
)
else
:
error_counter
=
0
self
.
retry_time
=
self
.
retry_time_start
self
.
snooze_time
=
self
.
snooze_time_start
self
.
listener
.
on_connect
()
self
.
_read_loop
(
resp
)
except
timeout
:
except
(
timeout
,
ssl
.
SSLError
),
exc
:
# If it's not time out treat it like any other exception
if
isinstance
(
exc
,
ssl
.
SSLError
)
and
not
(
exc
.
args
and
'timed out'
in
str
(
exc
.
args
[
0
])):
exception
=
exc
break
if
self
.
listener
.
on_timeout
()
==
False
:
break
if
self
.
running
is
False
:
break
conn
.
close
()
sleep
(
self
.
snooze_time
)
self
.
snooze_time
=
min
(
self
.
snooze_time
+
0.25
,
self
.
snooze_time_cap
)
except
Exception
,
exception
:
# any other exception is fatal, so kill loop
break
...
...
@@ -156,6 +174,8 @@ class Stream(object):
conn
.
close
()
if
exception
:
# call a handler first so that the exception can be logged.
self
.
listener
.
on_exception
(
exception
)
raise
def
_data
(
self
,
data
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment