Skip to content

Commit

Permalink
Support for Data Packages dribdat#98
Browse files Browse the repository at this point in the history
  • Loading branch information
loleg committed Oct 26, 2017
1 parent 73c4048 commit cf4c7e4
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 2 deletions.
7 changes: 6 additions & 1 deletion dribdat/aggregation.py
Expand Up @@ -4,7 +4,7 @@

from dribdat.user.models import Activity
from dribdat.database import db
from dribdat.apifetch import *
from dribdat.apifetch import * # TBR

def GetProjectData(url):
data = None
Expand All @@ -23,6 +23,11 @@ def GetProjectData(url):
if apiurl == url: return {}
return FetchBitbucketProject(apiurl)

# The fun begins
elif url.find('/datapackage.json') > 0:
return FetchDataProject(url)

# Now we're really rock'n'rollin'
else:
return FetchWebProject(url)

Expand Down
24 changes: 24 additions & 0 deletions dribdat/apifetch.py
Expand Up @@ -86,6 +86,30 @@ def FetchBitbucketProject(project_url):
'contact_url': contact_url,
}

DP_VIEWER_URL = 'http://data.okfn.org/tools/view?url=%s'
DP_IMAGE_URL = 'http://assets.okfn.org/p/data/img/icon-128.png'

def FetchDataProject(project_url):
data = requests.get(project_url)
if data.text.find('{') < 0: return {}
json = data.json()
if not 'name' in json: return {}
readme_url = project_url.replace('datapackage.json', 'README.md')
if readme_url == project_url: return {}
text_content = requests.get(readme_url).text
contact_url = 'http://frictionlessdata.io/'
if 'maintainers' in json and len(json['maintainers'])>0 and 'web' in json['maintainers'][0]:
contact_url = json['maintainers'][0]['web']
return {
'name': json['name'],
'summary': json['title'],
'description': text_content,
'homepage_url': DP_VIEWER_URL % project_url,
'source_url': project_url,
'image_url': DP_IMAGE_URL,
'contact_url': contact_url,
}

ALLOWED_HTML_TAGS = [
u'a', u'abbr', u'acronym', u'b', u'blockquote', u'code', u'em',
u'i', u'li', u'ol', u'strong', u'ul', u'h1', u'h2', u'h3',
Expand Down
3 changes: 2 additions & 1 deletion dribdat/static/js/script.js
Expand Up @@ -22,12 +22,13 @@
var checkAutotext = function(val, $ind) {
if (typeof val !== 'string') return;
supported = (
val.indexOf('datapackage.json') > 0 ||
val.indexOf('//github.com/') > 0 ||
val.indexOf('//gitlab.com/') > 0 ||
val.indexOf('//bitbucket.org/') > 0 ||
val.indexOf('document') > 0 ||
val.indexOf('wiki') > 0 ||
val.indexOf('pad') > 0
val.indexOf('pad') > 0
);
$ind.find('i')
.removeClass('fa-circle-o fa-check-circle-o')
Expand Down

0 comments on commit cf4c7e4

Please sign in to comment.