update all models.py files to python3 and django2.0

This commit is contained in:
Jonathan Math 2020-06-17 00:17:32 -04:00
parent dafb613826
commit e46b2495ce
11 changed files with 91 additions and 91 deletions

View file

@ -57,12 +57,12 @@ class MCategory(mongo.Document):
for category_title, sites in category_groups:
try:
category = cls.objects.get(title=category_title)
except cls.DoesNotExist, e:
print " ***> Missing category: %s" % category_title
except cls.DoesNotExist as e:
print(" ***> Missing category: %s" % category_title)
continue
category.feed_ids = [site.feed_id for site in sites]
category.save()
print " ---> Reloaded category: %s" % category
print(" ---> Reloaded category: %s" % category)
@classmethod
def subscribe(cls, user_id, category_title):
@ -111,6 +111,6 @@ class MCategorySite(mongo.Document):
feed_id=feed_id)
if not created:
print " ---> Site is already in category: %s" % category_site
print(" ---> Site is already in category: %s" % category_site)
else:
MCategory.reload_sites(category_title)

View file

@ -3,7 +3,7 @@ import mongoengine as mongo
import httplib2
import pickle
import base64
from StringIO import StringIO
from io import StringIO
from oauth2client.client import Error as OAuthError
from xml.etree.ElementTree import Element, SubElement, Comment, tostring
from lxml import etree
@ -76,14 +76,14 @@ class OPMLExporter(Importer):
if isinstance(obj, int) and obj in self.feeds:
feed = self.feeds[obj]
if verbose:
print " ---> Adding feed: %s - %s" % (feed['id'],
feed['feed_title'][:30])
print(" ---> Adding feed: %s - %s" % (feed['id'],
feed['feed_title'][:30]))
feed_attrs = self.make_feed_row(feed)
body.append(Element('outline', feed_attrs))
elif isinstance(obj, dict):
for folder_title, folder_objs in obj.items():
for folder_title, folder_objs in list(obj.items()):
if verbose:
print " ---> Adding folder: %s" % folder_title
print(" ---> Adding folder: %s" % folder_title)
folder_element = Element('outline', {'text': folder_title, 'title': folder_title})
body.append(self.process_outline(folder_element, folder_objs, verbose=verbose))
return body
@ -349,7 +349,7 @@ class GoogleReaderImporter(Importer):
folders = add_object_to_folder(feed_db.pk, category, folders)
# if feed_db.pk not in folders[category]:
# folders[category].append(feed_db.pk)
except Exception, e:
except Exception as e:
logging.info(' *** -> Exception: %s: %s' % (e, item))
return folders

View file

@ -3,7 +3,7 @@ import re
import redis
from django.contrib.sites.models import Site
from django.core.mail import EmailMultiAlternatives
from django.core.urlresolvers import reverse
from django.urls import reverse
from django.conf import settings
from django.template.loader import render_to_string
from django.utils.html import linebreaks

View file

@ -16,11 +16,11 @@ from apps.analyzer.models import compute_story_score
from utils.story_functions import truncate_chars
from utils import log as logging
from utils import mongoengine_fields
from HTMLParser import HTMLParser
from html.parser import HTMLParser
from vendor.apns import APNs, Payload
from bs4 import BeautifulSoup, Tag
import types
import urlparse
import urllib.parse
class NotificationFrequency(enum.Enum):
immediately = 1
@ -177,7 +177,7 @@ class MUserFeedNotification(mongo.Document):
def replace_with_newlines(element):
text = ''
for elem in element.recursiveChildGenerator():
if isinstance(elem, types.StringTypes):
if isinstance(elem, (str,)):
text += elem
elif elem.name == 'br':
text += '\n'
@ -289,7 +289,7 @@ class MUserFeedNotification(mongo.Document):
msg.attach_alternative(html, "text/html")
try:
msg.send()
except BotoServerError, e:
except BotoServerError as e:
logging.user(usersub.user, '~BMStory notification by email error: ~FR%s' % e)
return
logging.user(usersub.user, '~BMStory notification by email: ~FY~SB%s~SN~BM~FY/~SB%s' %
@ -310,13 +310,13 @@ class MUserFeedNotification(mongo.Document):
else:
iframe.extract()
return unicode(soup)
return str(soup)
def extract_youtube_id(self, url):
youtube_id = None
if 'youtube.com' in url:
youtube_parts = urlparse.urlparse(url)
youtube_parts = urllib.parse.urlparse(url)
if '/embed/' in youtube_parts.path:
youtube_id = youtube_parts.path.replace('/embed/', '')

View file

@ -16,7 +16,7 @@ from django.conf import settings
from django.contrib.auth import authenticate
from django.contrib.auth.models import User
from django.core.mail import EmailMultiAlternatives
from django.core.urlresolvers import reverse
from django.urls import reverse
from django.template.loader import render_to_string
from apps.rss_feeds.models import Feed, MStory, MStarredStory
from apps.rss_feeds.tasks import SchedulePremiumSetup
@ -91,11 +91,11 @@ class Profile(models.Model):
try:
super(Profile, self).save(*args, **kwargs)
except DatabaseError:
print " ---> Profile not saved. Table isn't there yet."
print(" ---> Profile not saved. Table isn't there yet.")
def delete_user(self, confirm=False, fast=False):
if not confirm:
print " ---> You must pass confirm=True to delete this user."
print(" ---> You must pass confirm=True to delete this user.")
return
logging.user(self.user, "Deleting user: %s / %s" % (self.user.email, self.user.profile.last_seen_ip))
@ -340,7 +340,7 @@ class Profile(models.Model):
customers = [c['customer'] for c in charges if 'customer' in c]
for customer in customers:
if not customer:
print " ***> No customer!"
print(" ***> No customer!")
continue
try:
profile = Profile.objects.get(stripe_id=customer)
@ -530,15 +530,15 @@ class Profile(models.Model):
has_profile = user.profile.last_seen_ip
except Profile.DoesNotExist:
usernames.add(user.username)
print " ---> Missing profile: %-20s %-30s %-6s %-6s" % (user.username, user.email, opens, reads)
print(" ---> Missing profile: %-20s %-30s %-6s %-6s" % (user.username, user.email, opens, reads))
continue
if opens is None and not reads and has_numbers:
usernames.add(user.username)
print " ---> Numerics: %-20s %-30s %-6s %-6s" % (user.username, user.email, opens, reads)
print(" ---> Numerics: %-20s %-30s %-6s %-6s" % (user.username, user.email, opens, reads))
elif not has_profile:
usernames.add(user.username)
print " ---> No IP: %-20s %-30s %-6s %-6s" % (user.username, user.email, opens, reads)
print(" ---> No IP: %-20s %-30s %-6s %-6s" % (user.username, user.email, opens, reads))
if not confirm: return usernames
@ -586,7 +586,7 @@ class Profile(models.Model):
else:
user_ids = dict([(us.user_id, us.active)
for us in UserSubscription.objects.filter(feed_id=feed_id).only('user', 'active')])
profiles = Profile.objects.filter(user_id__in=user_ids.keys()).values('user_id', 'last_seen_on', 'is_premium')
profiles = Profile.objects.filter(user_id__in=list(user_ids.keys())).values('user_id', 'last_seen_on', 'is_premium')
feed = Feed.get_by_id(feed_id)
if entire_feed_counted:
@ -776,7 +776,7 @@ class Profile(models.Model):
def send_forgot_password_email(self, email=None):
if not self.user.email and not email:
print "Please provide an email address."
print("Please provide an email address.")
return
if not self.user.email and email:
@ -797,7 +797,7 @@ class Profile(models.Model):
def send_new_user_queue_email(self, force=False):
if not self.user.email:
print "Please provide an email address."
print("Please provide an email address.")
return
params = dict(receiver_user_id=self.user.pk, email_type='new_user_queue')
@ -823,7 +823,7 @@ class Profile(models.Model):
def send_upload_opml_finished_email(self, feed_count):
if not self.user.email:
print "Please provide an email address."
print("Please provide an email address.")
return
user = self.user
@ -840,7 +840,7 @@ class Profile(models.Model):
def send_import_reader_finished_email(self, feed_count):
if not self.user.email:
print "Please provide an email address."
print("Please provide an email address.")
return
user = self.user
@ -857,7 +857,7 @@ class Profile(models.Model):
def send_import_reader_starred_finished_email(self, feed_count, starred_count):
if not self.user.email:
print "Please provide an email address."
print("Please provide an email address.")
return
user = self.user
@ -1270,7 +1270,7 @@ class PaymentHistory(models.Model):
return payments, output
output += "\nMonthly Totals:\n"
for m in reversed(range(months)):
for m in reversed(list(range(months))):
now = datetime.datetime.now()
start_date = datetime.datetime(now.year, now.month, 1) - dateutil.relativedelta.relativedelta(months=m)
end_time = start_date + datetime.timedelta(days=31)
@ -1286,7 +1286,7 @@ class PaymentHistory(models.Model):
this_mtd_sum = 0
last_mtd_count = 0
this_mtd_count = 0
for y in reversed(range(years)):
for y in reversed(list(range(years))):
now = datetime.datetime.now()
start_date = datetime.datetime(now.year, now.month, 1) - dateutil.relativedelta.relativedelta(years=y)
end_date = now - dateutil.relativedelta.relativedelta(years=y)
@ -1306,7 +1306,7 @@ class PaymentHistory(models.Model):
last_month_avg = 0
last_month_sum = 0
last_month_count = 0
for y in reversed(range(years)):
for y in reversed(list(range(years))):
now = datetime.datetime.now()
start_date = datetime.datetime(now.year, now.month, 1) - dateutil.relativedelta.relativedelta(years=y)
end_time = start_date + datetime.timedelta(days=31)
@ -1330,7 +1330,7 @@ class PaymentHistory(models.Model):
last_ytd_sum = 0
this_ytd_count = 0
last_ytd_count = 0
for y in reversed(range(years)):
for y in reversed(list(range(years))):
now = datetime.datetime.now()
start_date = datetime.datetime(now.year, 1, 1) - dateutil.relativedelta.relativedelta(years=y)
end_date = now - dateutil.relativedelta.relativedelta(years=y)
@ -1350,7 +1350,7 @@ class PaymentHistory(models.Model):
last_year_sum = 0
last_year_count = 0
annual = 0
for y in reversed(range(years)):
for y in reversed(list(range(years))):
now = datetime.datetime.now()
start_date = datetime.datetime(now.year, 1, 1) - dateutil.relativedelta.relativedelta(years=y)
end_date = datetime.datetime(now.year, 1, 1) - dateutil.relativedelta.relativedelta(years=y-1) - datetime.timedelta(seconds=1)
@ -1370,7 +1370,7 @@ class PaymentHistory(models.Model):
total = cls.objects.all().aggregate(sum=Sum('payment_amount'))
output += "\nTotal: $%s\n" % total['sum']
print output
print(output)
return {'annual': annual, 'output': output}
@ -1399,7 +1399,7 @@ class MGiftCode(mongo.Document):
@staticmethod
def create_code(gift_code=None):
u = unicode(uuid.uuid4())
u = str(uuid.uuid4())
code = u[:8] + u[9:13]
if gift_code:
code = gift_code + code[len(gift_code):]

View file

@ -24,8 +24,8 @@ class RecommendedFeed(models.Model):
class RecommendedFeedUserFeedback(models.Model):
recommendation = models.ForeignKey(RecommendedFeed, related_name='feedback')
user = models.ForeignKey(User, related_name='feed_feedback')
recommendation = models.ForeignKey(RecommendedFeed, related_name='feedback', on_delete=models.CASCADE)
user = models.ForeignKey(User, related_name='feed_feedback', on_delete=models.CASCADE)
score = models.IntegerField(default=0)
created_date = models.DateField(auto_now_add=True)
@ -47,7 +47,7 @@ class MFeedFolder(mongo.Document):
@classmethod
def count_feed(cls, feed_id):
feed = Feed.get_by_id(feed_id)
print feed
print(feed)
found_folders = defaultdict(int)
user_ids = [sub['user_id'] for sub in UserSubscription.objects.filter(feed=feed).values('user_id')]
usf = UserSubscriptionFolders.objects.filter(user_id__in=user_ids)
@ -57,7 +57,7 @@ class MFeedFolder(mongo.Document):
if not folder_title: continue
found_folders[folder_title.lower()] += 1
# print "%-20s - %s" % (folder_title if folder_title != '' else '[Top]', sub.user_id)
print sorted(found_folders.items(), key=lambda f: f[1], reverse=True)
print(sorted(list(found_folders.items()), key=lambda f: f[1], reverse=True))
@classmethod
@ -66,7 +66,7 @@ class MFeedFolder(mongo.Document):
if isinstance(item, int) and item == feed_id:
return folder_title
elif isinstance(item, dict):
for f_k, f_v in item.items():
for f_k, f_v in list(item.items()):
sub_folder_title = cls.feed_folder_parent(f_v, feed_id, f_k)
if sub_folder_title:
return sub_folder_title

View file

@ -2286,7 +2286,7 @@ class Feed(models.Model):
# phrase = models.CharField(max_length=500)
class FeedData(models.Model):
feed = AutoOneToOneField(Feed, related_name='data')
feed = AutoOneToOneField(Feed, related_name='data', on_delete=models.CASCADE)
feed_tagline = models.CharField(max_length=1024, blank=True, null=True)
story_count_history = models.TextField(blank=True, null=True)
feed_classifier_counts = models.TextField(blank=True, null=True)
@ -3251,7 +3251,7 @@ class DuplicateFeed(models.Model):
duplicate_address = models.CharField(max_length=764, db_index=True)
duplicate_link = models.CharField(max_length=764, null=True, db_index=True)
duplicate_feed_id = models.CharField(max_length=255, null=True, db_index=True)
feed = models.ForeignKey(Feed, related_name='duplicate_addresses')
feed = models.ForeignKey(Feed, related_name='duplicate_addresses', on_delete=models.CASCADE)
def __unicode__(self):
return "%s: %s / %s" % (self.feed, self.duplicate_address, self.duplicate_link)

View file

@ -1,5 +1,5 @@
import os
import urlparse
import urllib.parse
import datetime
import time
import zlib
@ -9,15 +9,15 @@ import re
import mongoengine as mongo
import random
import requests
import HTMLParser
import html.parser
import tweepy
from collections import defaultdict
from BeautifulSoup import BeautifulSoup
from bs4 import BeautifulSoup
from mongoengine.queryset import Q
from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.sites.models import Site
from django.core.urlresolvers import reverse
from django.urls import reverse
from django.template.loader import render_to_string
from django.template.defaultfilters import slugify
from django.core.mail import EmailMultiAlternatives
@ -38,7 +38,7 @@ from utils.story_functions import truncate_chars, strip_tags, linkify, image_siz
from utils.image_functions import ImageOps
from utils.scrubber import SelectiveScriptScrubber
from utils import s3_utils
from StringIO import StringIO
from io import StringIO
try:
from apps.social.spam import detect_spammers
@ -68,13 +68,13 @@ class MRequestInvite(mongo.Document):
@classmethod
def blast(cls):
invites = cls.objects.filter(email_sent=None)
print ' ---> Found %s invites...' % invites.count()
print(' ---> Found %s invites...' % invites.count())
for invite in invites:
try:
invite.send_email()
except:
print ' ***> Could not send invite to: %s. Deleting.' % invite.username
print(' ***> Could not send invite to: %s. Deleting.' % invite.username)
invite.delete()
def send_email(self):
@ -261,9 +261,9 @@ class MSocialProfile(mongo.Document):
for story in MSharedStory.objects(user_id=self.user_id).only('story_feed_id')[:500]:
publishers[story.story_feed_id] += 1
feed_titles = dict((f.id, f.feed_title)
for f in Feed.objects.filter(pk__in=publishers.keys()).only('id', 'feed_title'))
for f in Feed.objects.filter(pk__in=list(publishers.keys())).only('id', 'feed_title'))
feed_publishers = sorted([{'id': k, 'feed_title': feed_titles[k], 'story_count': v}
for k, v in publishers.items()
for k, v in list(publishers.items())
if k in feed_titles],
key=lambda f: f['story_count'],
reverse=True)[:20]
@ -723,7 +723,7 @@ class MSocialProfile(mongo.Document):
for year in range(min_year, now.year+1):
for month in range(1, 12+1):
if datetime.datetime(year, month, 1) < now:
key = u'%s-%s' % (year, month)
key = '%s-%s' % (year, month)
if dates.get(key) or start:
start = True
months.append((key, dates.get(key, 0)))
@ -760,7 +760,7 @@ class MSocialProfile(mongo.Document):
scores = []
res = cls.objects(social_user_id=self.user_id).map_reduce(map_f, reduce_f, output='inline')
for r in res:
facet_values = dict([(k, int(v)) for k,v in r.value.iteritems()])
facet_values = dict([(k, int(v)) for k,v in r.value.items()])
facet_values[facet] = r.key
scores.append(facet_values)
scores = sorted(scores, key=lambda v: v['neg'] - v['pos'])
@ -863,7 +863,7 @@ class MSocialSubscription(mongo.Document):
social_sub.calculate_feed_scores()
# Combine subscription read counts with feed/user info
feed = dict(social_sub.canonical().items() + social_profiles[user_id].items())
feed = dict(list(social_sub.canonical().items()) + list(social_profiles[user_id].items()))
social_feeds.append(feed)
return social_feeds
@ -1087,7 +1087,7 @@ class MSocialSubscription(mongo.Document):
story_hashes_and_dates = range_func(ranked_stories_keys, offset, limit, withscores=True)
if not story_hashes_and_dates:
return [], [], []
story_hashes, story_dates = zip(*story_hashes_and_dates)
story_hashes, story_dates = list(zip(*story_hashes_and_dates))
if read_filter == "unread":
unread_story_hashes = story_hashes
else:
@ -1114,7 +1114,7 @@ class MSocialSubscription(mongo.Document):
story_hashes_and_dates = range_func(ranked_stories_keys, offset, limit, withscores=True)
if not story_hashes_and_dates:
return [], [], []
story_hashes, story_dates = zip(*story_hashes_and_dates)
story_hashes, story_dates = list(zip(*story_hashes_and_dates))
if read_filter == "unread":
unread_feed_story_hashes = story_hashes
@ -1493,7 +1493,7 @@ class MSharedStory(mongo.DynamicDocument):
@property
def decoded_story_title(self):
h = HTMLParser.HTMLParser()
h = html.parser.HTMLParser()
return h.unescape(self.story_title)
def canonical(self):
@ -1550,7 +1550,7 @@ class MSharedStory(mongo.DynamicDocument):
@classmethod
def trim_old_stories(cls, stories=10, days=90, dryrun=False):
print " ---> Fetching shared story counts..."
print(" ---> Fetching shared story counts...")
stats = settings.MONGODB.newsblur.shared_stories.aggregate([{
"$group": {
"_id": "$user_id",
@ -1564,7 +1564,7 @@ class MSharedStory(mongo.DynamicDocument):
month_ago = datetime.datetime.now() - datetime.timedelta(days=days)
user_ids = list(stats)
user_ids = sorted(user_ids, key=lambda x:x['stories'], reverse=True)
print " ---> Found %s users with more than %s starred stories" % (len(user_ids), stories)
print(" ---> Found %s users with more than %s starred stories" % (len(user_ids), stories))
total = 0
for stat in user_ids:
@ -1578,17 +1578,17 @@ class MSharedStory(mongo.DynamicDocument):
total += stat['stories']
username = "%s (%s)" % (user and user.username or " - ", stat['_id'])
print " ---> %19.19s: %-20.20s %s stories" % (user and user.profile.last_seen_on or "Deleted",
print(" ---> %19.19s: %-20.20s %s stories" % (user and user.profile.last_seen_on or "Deleted",
username,
stat['stories'])
stat['stories']))
if not dryrun and stat['_id']:
cls.objects.filter(user_id=stat['_id']).delete()
elif not dryrun and stat['_id'] == 0:
print " ---> Deleting unshared stories (user_id = 0)"
print(" ---> Deleting unshared stories (user_id = 0)")
cls.objects.filter(user_id=stat['_id']).delete()
print " ---> Deleted %s stories in total." % total
print(" ---> Deleted %s stories in total." % total)
def unshare_story(self):
socialsubs = MSocialSubscription.objects.filter(subscription_user_id=self.user_id,
@ -1763,7 +1763,7 @@ class MSharedStory(mongo.DynamicDocument):
shared_feed_ids=shared_feed_ids)
shared = 0
for story_hash, story_info in shared_stories_today.items():
for story_hash, story_info in list(shared_stories_today.items()):
story, _ = MStory.find_story(story_info['feed_id'], story_info['story_hash'])
if not story:
logging.user(popular_user, "~FRPopular stories, story not found: %s" % story_info)
@ -1774,10 +1774,10 @@ class MSharedStory(mongo.DynamicDocument):
if interactive:
feed = Feed.get_by_id(story.story_feed_id)
accept_story = raw_input("%s / %s [Y/n]: " % (story.decoded_story_title, feed.title))
accept_story = input("%s / %s [Y/n]: " % (story.decoded_story_title, feed.title))
if accept_story in ['n', 'N']: continue
story_db = dict([(k, v) for k, v in story._data.items()
story_db = dict([(k, v) for k, v in list(story._data.items())
if k is not None and v is not None])
story_db.pop('user_id', None)
story_db.pop('id', None)
@ -1835,7 +1835,7 @@ class MSharedStory(mongo.DynamicDocument):
if drop:
for key_name in ["C", "S"]:
keys = r.keys("%s:*" % key_name)
print " ---> Removing %s keys named %s:*" % (len(keys), key_name)
print(" ---> Removing %s keys named %s:*" % (len(keys), key_name))
for key in keys:
r.delete(key)
for story in cls.objects.all():
@ -1947,7 +1947,7 @@ class MSharedStory(mongo.DynamicDocument):
'story_hash': story['story_hash'],
'user_id__in': sharer_user_ids,
}
if params.has_key('story_db_id'):
if 'story_db_id' in params:
params.pop('story_db_id')
shared_stories = cls.objects.filter(**params)\
.hint([('story_hash', 1)])
@ -2331,7 +2331,7 @@ class MSharedStory(mongo.DynamicDocument):
try:
datastream = StringIO(req.content)
width, height = ImageOps.image_size(datastream)
except IOError, e:
except IOError as e:
logging.debug(" ***> Couldn't read image: %s / %s" % (e, image_source))
datastream = StringIO(req.content[:100])
_, width, height = image_size(datastream)
@ -2502,7 +2502,7 @@ class MSocialServices(mongo.Document):
api = self.twitter_api()
try:
twitter_user = api.me()
except tweepy.TweepError, e:
except tweepy.TweepError as e:
api = None
if not api:
@ -2528,8 +2528,8 @@ class MSocialServices(mongo.Document):
self.set_photo('twitter')
try:
friend_ids = list(unicode(friend.id) for friend in tweepy.Cursor(api.friends).items())
except tweepy.TweepError, e:
friend_ids = list(str(friend.id) for friend in list(tweepy.Cursor(api.friends).items()))
except tweepy.TweepError as e:
logging.user(user, "~BG~FMTwitter import ~SBfailed~SN: %s" % e)
return
if not friend_ids:
@ -2589,7 +2589,7 @@ class MSocialServices(mongo.Document):
self.save()
return
facebook_friend_ids = [unicode(friend["id"]) for friend in friends["data"]]
facebook_friend_ids = [str(friend["id"]) for friend in friends["data"]]
self.facebook_friend_ids = facebook_friend_ids
self.facebook_refresh_date = datetime.datetime.utcnow()
self.facebook_picture_url = "https://graph.facebook.com/%s/picture" % self.facebook_uid
@ -2760,7 +2760,7 @@ class MSocialServices(mongo.Document):
week_ago = datetime.datetime.now() - datetime.timedelta(days=days)
shares = MSharedStory.objects.filter(shared_date__gte=week_ago)
sharers = sorted(set([s.user_id for s in shares]))
print " ---> %s sharing user_ids" % len(sorted(sharers))
print(" ---> %s sharing user_ids" % len(sorted(sharers)))
for user_id in sharers:
try:
@ -2771,9 +2771,9 @@ class MSocialServices(mongo.Document):
ss = MSocialServices.objects.get(user_id=user_id)
try:
ss.sync_twitter_photo()
print " ---> Syncing %s" % user_id
except Exception, e:
print " ***> Exception on %s: %s" % (user_id, e)
print(" ---> Syncing %s" % user_id)
except Exception as e:
print(" ***> Exception on %s: %s" % (user_id, e))
def sync_twitter_photo(self):
profile = MSocialProfile.get_user(self.user_id)
@ -2787,7 +2787,7 @@ class MSocialServices(mongo.Document):
try:
api = self.twitter_api()
me = api.me()
except (tweepy.TweepError, TypeError), e:
except (tweepy.TweepError, TypeError) as e:
logging.user(user, "~FRException (%s): ~FCsetting to blank profile photo" % e)
self.twitter_picture_url = None
self.set_photo("nothing")
@ -2809,7 +2809,7 @@ class MSocialServices(mongo.Document):
os.remove(filename)
else:
api.update_status(status=message)
except tweepy.TweepError, e:
except tweepy.TweepError as e:
user = User.objects.get(pk=self.user_id)
logging.user(user, "~FRTwitter error: ~SB%s" % e)
return
@ -2823,7 +2823,7 @@ class MSocialServices(mongo.Document):
logging.user(user, "~FCFetching image for twitter: ~SB%s" % shared_story.image_urls[0])
url = shared_story.image_urls[0]
image_filename = os.path.basename(urlparse.urlparse(url).path)
image_filename = os.path.basename(urllib.parse.urlparse(url).path)
req = requests.get(url, stream=True)
filename = "/tmp/%s-%s" % (shared_story.story_hash, image_filename)
@ -2851,7 +2851,7 @@ class MSocialServices(mongo.Document):
website=shared_story.blurblog_permalink(),
message=message,
)
except facebook.GraphAPIError, e:
except facebook.GraphAPIError as e:
logging.debug("---> ~SN~FMFacebook posting error, disconnecting: ~SB~FR%s" % e)
self.disconnect_facebook()
return
@ -2867,8 +2867,8 @@ class MSocialServices(mongo.Document):
'text': shared_story.decoded_story_title,
'url': shared_story.blurblog_permalink()
}])
except Exception, e:
print e
except Exception as e:
print(e)
return
return True

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from six import b
from six.moves.urllib.request import urlopen
@ -11,7 +11,7 @@ from vendor.paypal.standard.ipn.signals import payment_was_flagged, payment_was_
class PayPalIPN(PayPalStandardBase):
"""Logs PayPal IPN interactions."""
format = u"<IPN: %s %s>"
format = "<IPN: %s %s>"
class Meta:
db_table = "paypal_ipn"

View file

@ -26,7 +26,7 @@ except:
class PayPalPDT(PayPalStandardBase):
format = u"<PDT: %s %s>"
format = "<PDT: %s %s>"
amt = models.DecimalField(max_digits=64, decimal_places=2, default=0, blank=True, null=True)
cm = models.CharField(max_length=255, blank=True)

View file

@ -11,7 +11,7 @@ class StripeCustomer(models.Model, mixins.StripeMixin, mixins.StripeCustomerMixi
abstract = True
def __unicode__(self):
return u"%s" % self.stripe_customer_id
return "%s" % self.stripe_customer_id
class StripePlan(models.Model, mixins.StripeMixin, mixins.StripePlanMixin):
@ -21,7 +21,7 @@ class StripePlan(models.Model, mixins.StripeMixin, mixins.StripePlanMixin):
abstract = True
def __unicode__(self):
return u"%s" % self.stripe_plan_id
return "%s" % self.stripe_plan_id
class StripeSubscription(models.Model, mixins.StripeMixin, mixins.StripeSubscriptionMixin):
@ -53,7 +53,7 @@ if options.ZEBRA_ENABLE_APP:
plan = models.ForeignKey(Plan, on_delete=models.CASCADE)
def __unicode__(self):
return u"%s: %s" % (self.customer, self.plan)
return "%s: %s" % (self.customer, self.plan)
@property
def stripe_customer(self):