From 06c11d4772fa9cb27a5ba06476c9daf72daa2f39 Mon Sep 17 00:00:00 2001 From: Gust Date: Thu, 11 Dec 2014 14:57:44 -0200 Subject: [PATCH] Add interface for data importation for proxies --- colab/proxy/gitlab/data_api.py | 1 - colab/proxy/gitlab/models.py | 2 ++ colab/proxy/proxybase/__init__.py | 0 colab/proxy/proxybase/management/commands/__init__.py | 1 + colab/proxy/proxybase/management/commands/import_proxy_data.py | 21 +++++++++++++++++++++ colab/proxy/proxybase/proxy_data_api.py | 6 ++++++ colab/settings.py | 3 ++- 7 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 colab/proxy/proxybase/__init__.py create mode 100644 colab/proxy/proxybase/management/commands/__init__.py create mode 100644 colab/proxy/proxybase/management/commands/import_proxy_data.py create mode 100644 colab/proxy/proxybase/proxy_data_api.py diff --git a/colab/proxy/gitlab/data_api.py b/colab/proxy/gitlab/data_api.py index 6d464da..da9f749 100644 --- a/colab/proxy/gitlab/data_api.py +++ b/colab/proxy/gitlab/data_api.py @@ -1,4 +1,3 @@ - import json import urllib import urllib2 diff --git a/colab/proxy/gitlab/models.py b/colab/proxy/gitlab/models.py index c0bd5e6..3335a3f 100644 --- a/colab/proxy/gitlab/models.py +++ b/colab/proxy/gitlab/models.py @@ -1,4 +1,6 @@ from django.db import models +from django.conf import settings +from colab.accounts.models import User class GitlabProject(models.Model): diff --git a/colab/proxy/proxybase/__init__.py b/colab/proxy/proxybase/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/colab/proxy/proxybase/__init__.py diff --git a/colab/proxy/proxybase/management/commands/__init__.py b/colab/proxy/proxybase/management/commands/__init__.py new file mode 100644 index 0000000..93f5256 --- /dev/null +++ b/colab/proxy/proxybase/management/commands/__init__.py @@ -0,0 +1 @@ +__init__.py \ No newline at end of file diff --git a/colab/proxy/proxybase/management/commands/import_proxy_data.py b/colab/proxy/proxybase/management/commands/import_proxy_data.py new file mode 100644 index 0000000..acd8f7a --- /dev/null +++ b/colab/proxy/proxybase/management/commands/import_proxy_data.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python + +import colab +from django.core.management.base import BaseCommand +from colab.super_archives.models import Message +from django.conf import settings +modules = [ i for i in settings.INSTALLED_APPS if i.startswith("colab.proxy.") ] +for module in modules: + module += ".data_api" + __import__(module, locals(), globals()) + +class Command(BaseCommand): + help = "Import proxy data into colab database" + + def handle(self, *args, **kwargs): + print "Executing extraction command..." + + for module in modules: + extractionClassname = module + ".data_api." + module.split('.')[-1].title() + "DataAPI" + api = eval(extractionClassname)() + api.fetchData() diff --git a/colab/proxy/proxybase/proxy_data_api.py b/colab/proxy/proxybase/proxy_data_api.py new file mode 100644 index 0000000..b4fa475 --- /dev/null +++ b/colab/proxy/proxybase/proxy_data_api.py @@ -0,0 +1,6 @@ + +class ProxyDataAPI(): + + + def fetchData(self): + raise NotImplementedError('fetchData not yet implemented') \ No newline at end of file diff --git a/colab/settings.py b/colab/settings.py index fda5560..551d37e 100644 --- a/colab/settings.py +++ b/colab/settings.py @@ -321,8 +321,9 @@ if FEEDZILLA_ENABLED: 'common', ) -PROXIED_APPS = locals().get('PROXIED_APPS') or {} BROWSERID_ENABLED = locals().get('BROWSERID_ENABLED') or False +PROXIED_APPS = locals().get('PROXIED_APPS') or {} + for app_label in PROXIED_APPS.keys(): INSTALLED_APPS += ('colab.proxy.{}'.format(app_label),) -- libgit2 0.21.2