Skip to content

Commit

Permalink
Fixing Youtube embeds and correctly handling keyboard events when sha…
Browse files Browse the repository at this point in the history
…re is in transit.
  • Loading branch information
samuelclay committed Aug 27, 2012
1 parent 82060a6 commit c3dbe76
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 5 deletions.
4 changes: 2 additions & 2 deletions apps/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from apps.reader.models import UserSubscription, UserSubscriptionFolders
from utils import json_functions as json
from utils import log as logging
from utils.scrubber import Scrubber
from utils.scrubber import SelectiveScriptScrubber
from utils.feed_functions import relative_timesince
from utils.story_functions import strip_tags

Expand Down Expand Up @@ -257,7 +257,7 @@ def share_story(request, token):

parsed_url = urlparse.urlparse(story_url)
base_url = "%s://%s%s" % (parsed_url.scheme, parsed_url.hostname, parsed_url.path)
scrubber = Scrubber(base_url=base_url)
scrubber = SelectiveScriptScrubber(base_url=base_url)
content = scrubber.scrub(content)
title = strip_tags(title)

Expand Down
10 changes: 9 additions & 1 deletion templates/api/share_bookmarklet.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
this.folders = {{ folders|safe }};
this.domain = "{% current_domain %}";
this.flags = {
'new_folder': false
'new_folder': false,
'in_transit': false
};
this.images = {
'accept_image': "{{ accept_image }}"
Expand Down Expand Up @@ -407,10 +408,13 @@
var $share = $(".NB-bookmarklet-comment-submit", this.$modal);
var $error = $(".NB-bookmarklet-comment-error", this.$modal);

this.flags.in_transit = true;

$error.html('');
$share.addClass('NB-disabled').text('Sharing...');
this.feed = this.feed || {};


$.ajax({
url: '//'+this.domain+"{% url api-share-story token %}",
type: 'POST',
Expand All @@ -429,6 +433,7 @@

post_share_story: function(data) {
var $share = $(".NB-bookmarklet-comment-submit", this.$modal);
this.flags.in_transit = false;

if (data.code < 0) {
return this.error_share_story(data);
Expand All @@ -448,6 +453,7 @@
error_share_story: function(data) {
var $share = $(".NB-bookmarklet-comment-submit", this.$modal);
var $error = $(".NB-bookmarklet-comment-error", this.$modal);
this.flags.in_transit = false;

$share.removeClass('NB-disabled');
$error.show();
Expand Down Expand Up @@ -610,6 +616,8 @@
},

update_share_button_title: function() {
if (this.flags.in_transit) return;

var $comment = $('textarea[name=newsblur_comment]', this.$modal);
var $submit = $('.NB-bookmarklet-comment-submit', this.$modal);
var $error = $(".NB-bookmarklet-comment-error", this.$modal);
Expand Down
6 changes: 4 additions & 2 deletions utils/scrubber/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,8 +283,8 @@ class SelectiveScriptScrubber(Scrubber):
allowed_tags = Scrubber.allowed_tags | set(('script', 'noscript', 'iframe'))
allowed_attributes = Scrubber.allowed_attributes | set(('scrolling', 'frameborder'))

def __init__(self):
super(SelectiveScriptScrubber, self).__init__()
def __init__(self, *args, **kwargs):
super(SelectiveScriptScrubber, self).__init__(*args, **kwargs)

self.allowed_script_srcs = set((
'http://www.statcounter.com/counter/counter_xhtml.js',
Expand All @@ -311,6 +311,8 @@ def __init__(self):

self.allowed_iframe_srcs = set(re.compile(text) for text in (
r'^http://www\.google\.com/calendar/embed\?[\w&;=\%]+$', # Google Calendar
r'^https?://www\.youtube\.com/', # YouTube
r'^http://player\.vimeo\.com/', # Vimeo
))

def _scrub_tag_script(self, script):
Expand Down

0 comments on commit c3dbe76

Please sign in to comment.