mirror of
https://github.com/viq/NewsBlur.git
synced 2025-04-13 09:38:09 +00:00
Cleaning up 3 apps.
This commit is contained in:
parent
ad748549f7
commit
721779b357
4 changed files with 19 additions and 161 deletions
|
@ -4,9 +4,5 @@ from apps.feed_import import views
|
|||
urlpatterns = patterns('apps.feed_import.views',
|
||||
url(r'^opml_upload/?$', views.opml_upload, name='opml-upload'),
|
||||
url(r'^opml_export/?$', views.opml_export, name='opml-export'),
|
||||
url(r'^authorize/?$', views.reader_authorize, name='google-reader-authorize'),
|
||||
url(r'^callback/?$', views.reader_callback, name='google-reader-callback'),
|
||||
url(r'^signup/?$', views.import_signup, name='import-signup'),
|
||||
url(r'^import_from_google_reader/?$', views.import_from_google_reader, name='import-from-google-reader'),
|
||||
url(r'^import_starred_stories_from_google_reader/?$', views.import_starred_stories_from_google_reader, name='import-starred-stories-from-google-reader')
|
||||
)
|
||||
|
|
|
@ -90,159 +90,6 @@ def opml_export(request):
|
|||
|
||||
return response
|
||||
|
||||
|
||||
def reader_authorize(request):
|
||||
ip = request.META.get('HTTP_X_FORWARDED_FOR', None) or request.META.get('REMOTE_ADDR', "")
|
||||
reader_importer = GoogleReaderImporter(request.user)
|
||||
if reader_importer.test():
|
||||
logging.user(request, "~BB~FW~SBSkipping Google Reader import, already tokened")
|
||||
return render_to_response('social/social_connect.xhtml', {
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
domain = Site.objects.get_current().domain
|
||||
STEP2_URI = "http://%s%s" % (
|
||||
(domain + '.com') if not domain.endswith('.com') else domain,
|
||||
reverse('google-reader-callback'),
|
||||
)
|
||||
|
||||
FLOW = OAuth2WebServerFlow(
|
||||
client_id=settings.GOOGLE_OAUTH2_CLIENTID,
|
||||
client_secret=settings.GOOGLE_OAUTH2_SECRET,
|
||||
scope="http://www.google.com/reader/api",
|
||||
redirect_uri=STEP2_URI,
|
||||
user_agent='NewsBlur Pro, www.newsblur.com',
|
||||
approval_prompt="force",
|
||||
)
|
||||
logging.user(request, "~BB~FW~SBAuthorize Google Reader import - %s" % (
|
||||
request.META.get('HTTP_X_FORWARDED_FOR', None) or request.META.get('REMOTE_ADDR', ""),
|
||||
))
|
||||
|
||||
authorize_url = FLOW.step1_get_authorize_url(redirect_uri=STEP2_URI)
|
||||
response = render_to_response('social/social_connect.xhtml', {
|
||||
'next': authorize_url,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
# Save request token and delete old tokens
|
||||
auth_token_dict = dict()
|
||||
if request.user.is_authenticated():
|
||||
OAuthToken.objects.filter(user=request.user).delete()
|
||||
auth_token_dict['user'] = request.user
|
||||
else:
|
||||
OAuthToken.objects.filter(session_id=request.session.session_key).delete()
|
||||
OAuthToken.objects.filter(remote_ip=ip).delete()
|
||||
auth_token_dict['uuid'] = str(uuid.uuid4())
|
||||
auth_token_dict['session_id'] = request.session.session_key
|
||||
auth_token_dict['remote_ip'] = ip
|
||||
OAuthToken.objects.create(**auth_token_dict)
|
||||
|
||||
response.set_cookie('newsblur_reader_uuid', str(uuid.uuid4()))
|
||||
return response
|
||||
|
||||
def reader_callback(request):
|
||||
ip = request.META.get('HTTP_X_FORWARDED_FOR', None) or request.META.get('REMOTE_ADDR', "")
|
||||
domain = Site.objects.get_current().domain
|
||||
STEP2_URI = "http://%s%s" % (
|
||||
(domain + '.com') if not domain.endswith('.com') else domain,
|
||||
reverse('google-reader-callback'),
|
||||
)
|
||||
FLOW = OAuth2WebServerFlow(
|
||||
client_id=settings.GOOGLE_OAUTH2_CLIENTID,
|
||||
client_secret=settings.GOOGLE_OAUTH2_SECRET,
|
||||
scope="http://www.google.com/reader/api",
|
||||
redirect_uri=STEP2_URI,
|
||||
user_agent='NewsBlur Pro, www.newsblur.com',
|
||||
)
|
||||
FLOW.redirect_uri = STEP2_URI
|
||||
|
||||
http = httplib2.Http()
|
||||
http.disable_ssl_certificate_validation = True
|
||||
try:
|
||||
credential = FLOW.step2_exchange(request.REQUEST)
|
||||
except FlowExchangeError:
|
||||
logging.info(" ***> [%s] Bad token from Google Reader." % (request.user,))
|
||||
return render_to_response('social/social_connect.xhtml', {
|
||||
'error': 'There was an error trying to import from Google Reader. Trying again will probably fix the issue.'
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
user_token = None
|
||||
if request.user.is_authenticated():
|
||||
user_token = OAuthToken.objects.filter(user=request.user).order_by('-created_date')
|
||||
if not user_token:
|
||||
user_uuid = request.COOKIES.get('newsblur_reader_uuid')
|
||||
if user_uuid:
|
||||
user_token = OAuthToken.objects.filter(uuid=user_uuid).order_by('-created_date')
|
||||
if not user_token:
|
||||
session = request.session
|
||||
if session.session_key:
|
||||
user_token = OAuthToken.objects.filter(session_id=request.session.session_key).order_by('-created_date')
|
||||
if not user_token:
|
||||
user_token = OAuthToken.objects.filter(remote_ip=ip).order_by('-created_date')
|
||||
|
||||
if user_token:
|
||||
user_token = user_token[0]
|
||||
user_token.credential = base64.b64encode(pickle.dumps(credential))
|
||||
user_token.session_id = request.session.session_key
|
||||
user_token.save()
|
||||
|
||||
# Fetch imported feeds on next page load
|
||||
request.session['import_from_google_reader'] = True
|
||||
|
||||
logging.user(request, "~BB~FW~SBFinishing Google Reader import - %s" % ip)
|
||||
|
||||
if request.user.is_authenticated():
|
||||
return render_to_response('social/social_connect.xhtml', {}, context_instance=RequestContext(request))
|
||||
|
||||
return HttpResponseRedirect(reverse('import-signup'))
|
||||
|
||||
@json.json_view
|
||||
def import_from_google_reader(request):
|
||||
code = 0
|
||||
feed_count = 0
|
||||
starred_count = 0
|
||||
delayed = False
|
||||
|
||||
if request.user.is_authenticated():
|
||||
reader_importer = GoogleReaderImporter(request.user)
|
||||
auto_active = bool(request.REQUEST.get('auto_active') or False)
|
||||
|
||||
try:
|
||||
code = reader_importer.try_import_feeds(auto_active=auto_active)
|
||||
except TimeoutError:
|
||||
ProcessReaderImport.delay(request.user.pk, auto_active=auto_active)
|
||||
feed_count = UserSubscription.objects.filter(user=request.user).count()
|
||||
logging.user(request, "~FR~SBGoogle Reader import took too long, found %s feeds. Tasking..." % feed_count)
|
||||
delayed = True
|
||||
code = 2
|
||||
|
||||
if 'import_from_google_reader' in request.session:
|
||||
del request.session['import_from_google_reader']
|
||||
|
||||
feed_count = UserSubscription.objects.filter(user=request.user).count()
|
||||
|
||||
return dict(code=code, delayed=delayed, feed_count=feed_count, starred_count=starred_count)
|
||||
|
||||
@json.json_view
|
||||
def import_starred_stories_from_google_reader(request):
|
||||
code = 0
|
||||
feed_count = 0
|
||||
starred_count = 0
|
||||
delayed = False
|
||||
|
||||
if request.user.is_authenticated():
|
||||
reader_importer = GoogleReaderImporter(request.user)
|
||||
try:
|
||||
starred_count = reader_importer.try_import_starred_stories()
|
||||
except TimeoutError:
|
||||
ProcessReaderStarredImport.delay(request.user.pk)
|
||||
feed_count = UserSubscription.objects.filter(user=request.user).count()
|
||||
logging.user(request, "~FR~SBGoogle Reader starred stories import took too long, found %s feeds, %s stories. Tasking..." % (feed_count, starred_count))
|
||||
delayed = True
|
||||
code = 2
|
||||
|
||||
feed_count = UserSubscription.objects.filter(user=request.user).count()
|
||||
|
||||
return dict(code=code, delayed=delayed, feed_count=feed_count, starred_count=starred_count)
|
||||
|
||||
def import_signup(request):
|
||||
ip = request.META.get('HTTP_X_FORWARDED_FOR', None) or request.META.get('REMOTE_ADDR', "")
|
||||
|
||||
|
|
|
@ -6,6 +6,10 @@ from apps.newsletters.models import EmailNewsletter
|
|||
from apps.rss_feeds.models import Feed, MStory
|
||||
|
||||
def newsletter_receive(request):
|
||||
"""
|
||||
This function is called by mailgun's receive email feature. This is a
|
||||
private API used for the newsletter app.
|
||||
"""
|
||||
# params = {
|
||||
# 'stripped-signature':'Thanks,\nBob',
|
||||
# 'From':'Test mailer <samuel@ofbrooklyn.com>',
|
||||
|
@ -37,7 +41,7 @@ def newsletter_receive(request):
|
|||
# 'Content-Type':'multipart/mixed; boundary="------------020601070403020003080006"',
|
||||
# 'Subject':'Test Newsletter theskimm'
|
||||
# }
|
||||
params = request.REQUEST
|
||||
params = request.POST
|
||||
|
||||
response = HttpResponse('OK')
|
||||
|
||||
|
|
|
@ -59,9 +59,13 @@ def set_notifications_for_feed(request):
|
|||
@ajax_login_required
|
||||
@json.json_view
|
||||
def set_apns_token(request):
|
||||
"""
|
||||
Apple Push Notification Service, token is sent by the iOS app. Used to send
|
||||
push notifications to iOS.
|
||||
"""
|
||||
user = get_user(request)
|
||||
tokens = MUserNotificationTokens.get_tokens_for_user(user.pk)
|
||||
apns_token = request.REQUEST['apns_token']
|
||||
apns_token = request.POST['apns_token']
|
||||
|
||||
logging.user(user, "~FCUpdating APNS push token")
|
||||
if apns_token not in tokens.ios_tokens:
|
||||
|
@ -74,9 +78,13 @@ def set_apns_token(request):
|
|||
@ajax_login_required
|
||||
@json.json_view
|
||||
def set_android_token(request):
|
||||
"""
|
||||
Android's push notification tokens. Not sure why I can't find this function in
|
||||
the Android code.
|
||||
"""
|
||||
user = get_user(request)
|
||||
tokens = MUserNotificationTokens.get_tokens_for_user(user.pk)
|
||||
token = request.REQUEST['token']
|
||||
token = request.POST['token']
|
||||
|
||||
logging.user(user, "~FCUpdating Android push token")
|
||||
if token not in tokens.android_tokens:
|
||||
|
@ -90,8 +98,11 @@ def set_android_token(request):
|
|||
@staff_member_required
|
||||
@json.json_view
|
||||
def force_push(request):
|
||||
"""
|
||||
Intended to force a push notification for a feed for testing. Handier than the console.
|
||||
"""
|
||||
user = get_user(request)
|
||||
feed_id = request.REQUEST['feed_id']
|
||||
feed_id = request.GET['feed_id']
|
||||
count = int(request.REQUEST.get('count', 1))
|
||||
|
||||
logging.user(user, "~BM~FWForce pushing %s stories: ~SB%s" % (count, Feed.get_by_id(feed_id)))
|
||||
|
|
Loading…
Add table
Reference in a new issue