import time
import requests
import json
import string
import os
from os import path
import time
from senpy.plugins import SentimentPlugin, SenpyPlugin
from senpy.models import Results, Entry, Sentiment,Error

class DaedalusPlugin(SentimentPlugin):

    def analyse_entry(self, entry, params):

        txt = entry.get("text",None)
        model = "general" # general_es / general_es / general_fr
        api = 'http://api.meaningcloud.com/sentiment-2.1'
        lang = params.get("language")
        key = params["apiKey"]
        parameters = {'key': key,
                      'model': model,
                      'lang': lang,
                      'of': 'json',
                      'txt': txt,
                      'src': 'its-not-a-real-python-sdk'
                      }
        r = requests.post(api, params=parameters)

        value = r.json().get('score_tag', None)
        if not value:
            raise Error(r.json())

        #Senpy Response
        response = Results()
        polarityValue = 0
        polarity = 'marl:Neutral'
        if 'N' in value:
            polarity = 'marl:Negative'
            polarityValue = -1
        elif 'P' in value:
            polarity = 'marl:Positive'
            polarityValue = 1

        opinion = Sentiment(id="Opinion0",marl__hasPolarity=polarity,marl__polarityValue = polarityValue)
        entry.sentiments.append(opinion)

        yield entry