Skip to content

Instantly share code, notes, and snippets.

@007lva
Created November 23, 2016 12:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 007lva/1265b149c70428cf23704dd527fac140 to your computer and use it in GitHub Desktop.
Save 007lva/1265b149c70428cf23704dd527fac140 to your computer and use it in GitHub Desktop.
SharedCount = Object.create(HTMLSpanElement.prototype)
PROVIDERS =
facebook:
url: (url) -> "http://graph.facebook.com/#{url}"
counter_field: 'share.share_count'
twitter:
url: (url) -> "http://opensharecount.com/count.json?url=#{url}"
counter_field: 'count'
SharedCount.createdCallback = ->
provider = PROVIDERS[@getAttribute('provider')]
url = provider.url(@getAttribute('url'))
$.ajax
url: url
cache: false
dataType: 'json'
success: (json) =>
keys = provider.counter_field.split('.')
value = json
for key in keys
value = value[key] if value
@textContent = value || 0
document.registerElement 'shared-count',
prototype: SharedCount
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment