Exemplo n.º 1
0
def post_task2_to_crowd(f,price):
    """
        This function post a task to the
        crowd.
    """

    t = Task(pub_date=timezone.now(), question='Question2', feed=f, price = price)
    t.save()
    logger.info("new task2 was stored")
    payload = json.load(urllib2.urlopen('http://127.0.0.1:8002/api/v1/task/1/?format=json'))
    payload['data'] = json.dumps(transform_task_to_data(t))
    payload['price'] = price
    payload['answer'] = 'NULL'
    payload['question'] = 'Please state your sentiments about this text'
    #TODO: callback uri
    payload['callback_uri'] = 'http://127.0.0.1:8000/api/v1/task/'+ str(t.id) +'/'
    #payload['keyword_count'] = 5
    payload.pop('resource_uri')
    payload.pop('id')
    logger.info('payload = ' + json.dumps(payload)[:50])
    url = 'http://127.0.0.1:8002/api/v1/task/'

    headers = {'content-type': 'application/json'}
    response = requests.post(url, data=json.dumps(payload), headers=headers)

    if response.status_code == 201:
        logger.info("Task sucessfull postet: " + str(response.status_code) + " " + response.reason)
        t.status = 'S'
        t.task_uri = response.headers.get('location')  # get the location of the saved Item
        t.save()
    else:
        logger.error("Problem with CrowdSourcing App: " + str(response.status_code) + " " + response.reason)
Exemplo n.º 2
0
def create_test_sentiment_data(count):
    t = Task(question="Question2",
             feed_id=0)
    t.answer = {}
    t.answer['worker'] = 'testworker'
    t.answer['keywords'] = {}
    t.status = 'D'
    t.feed = Feed.objects.order_by('?')[0]
    for i in range(0,count):
        rand_keyword = Keyword.objects.order_by('?')[0]
        rand_sen = random.randint(1,5)
        t.answer['keywords'][rand_keyword.text]=str(rand_sen)
        print "rand sentiment" + str(rand_sen) + " for keyword " + rand_keyword.text
    print t.answer
    t.answer=json.dumps(t.answer)
    t.save()
Exemplo n.º 3
0
    def do(self):
        logger.info("Getting Feeds")
        d = feedparser.parse('http://ftr.fivefilters.org/makefulltextfeed.php?url=http%3A%2F%2Ffeeds.finance.yahoo.com%2Frss%2F2.0%2Fheadline%3Fs%3Dyhoo%2Cmsft%2Ctivo%26region%3DUS%26lang%3Den-US&max=3')
#        d = feedparser.parse('http://derstandard.at/?page=rss')
        for item in d.entries:
            if Feed.objects.filter(link=item.id):
                logger.info("feed already in db: " + item.id)
                pass
            else:
                f = Feed(link=item.id,
                         title=item.title,
                         content=item.summary_detail.value,
                         pub_date=datetime.fromtimestamp(mktime(item.published_parsed)))
                f.save()
                logger.info("new feed was stored: " + item.id)
                #preparing HTTP payload
                template = json.load(urllib2.urlopen('http://127.0.0.1:8002/api/v1/task/1/?format=json'))
                template['price'] = 0
                template['keyword_count'] = 5
		template['price'] = 1
                template['answer'] = 'NULL'
                template['question'] = 'Please find keywords in this text'
                template.pop('resource_uri')
                template.pop('id')
                headers = {'content-type': 'application/json'}
                url = 'http://127.0.0.1:8002/api/v1/task/'

                for i in range(0,3):
                    payload=template
                    t = Task(pub_date=timezone.now(), question='Question1', feed=f)
                    t.save()
                    logger.info("new task was stored")
                    payload['data'] = json.dumps(transform_task_to_data(t))
                    payload['callback_uri'] = 'http://127.0.0.1:8000/api/v1/task/'+ str(t.id) +'/'
                    logger.info('payload = ' + json.dumps(payload)[:50])

                    response = requests.post(url, data=json.dumps(payload), headers=headers)

                    if response.status_code == 201:
                        logger.info("Task sucessfull postet: " + str(response.status_code) + " " + response.reason)
                        t.status = 'S'
                        t.task_uri = response.headers.get('location')  # get the location of the saved Item
                        t.save()
                    else:
                        logger.error("Problem with CrowdSourcing App: " + str(response.status_code) + " " + response.reason)