Пример #1
0
class Tweet(neomodel.StructuredNode):
    id_str = neomodel.StringProperty(unique_index=True, required=True)
    created_at = neomodel.DateTimeProperty(required=False)
    modified = neomodel.DateTimeProperty(required=False)
    retweeted = neomodel.BooleanProperty(required=False)
    retweet_id_str = neomodel.StringProperty(required=False, default='')
    reply_id_str = neomodel.StringProperty(required=False, default='')
    quote_id_str = neomodel.StringProperty(required=False, default='')
    mention_ids_str = neomodel.ArrayProperty(required=False, default=[])
    text = neomodel.StringProperty(required=False)
    coordinates = neomodel.ArrayProperty(required=False, default=[])
    lang = neomodel.StringProperty(required=False)
    features = neomodel.JSONProperty(required=False, default={})
    sentiment_polarity = neomodel.FloatProperty(required=False)
    sentiment_subjectivity = neomodel.FloatProperty(required=False)

    retweets = neomodel.RelationshipTo('Tweet', 'RETWEETS')
    mentions = neomodel.RelationshipTo('User', 'MENTIONS')
    replies = neomodel.RelationshipTo('Tweet', 'REPLIES')
    tags = neomodel.RelationshipTo('Hashtag', 'TAGS')
    contains = neomodel.RelationshipTo('Link', 'CONTAINS')
    quotes = neomodel.Relationship('Tweet', 'QUOTES')
    tweet_about = neomodel.RelationshipTo('Company', 'TWEETS')

    def save(self):
        self.modified = datetime.datetime.now()
        super(Tweet, self).save()
        return self
Пример #2
0
class Post(nm.StructuredNode):
    uid = nm.StringProperty(unique_index=True, default=uuid4)
    create_datetime = nm.DateTimeProperty(default_now=True)
    content = nm.StringProperty(required=True)

    comments = nm.Relationship('Comment', 'COMMENTED')
    written_by = nm.Relationship('User', 'WRITTEN_BY')
Пример #3
0
class PersonalRelationship(neomodel.StructuredRel):
    """
    A very simple relationship between two basePersons that simply records 
    the date at which an acquaintance was established.
    This relationship should be carried over to anything that inherits from 
    basePerson without any further effort.
    """
    on_date = neomodel.DateTimeProperty(default_now=True)
Пример #4
0
class Company(neomodel.StructuredNode):
    id_str = neomodel.StringProperty(unique_index=True, required=True)
    name = neomodel.StringProperty(required=False)
    created_at = neomodel.DateTimeProperty(required=False)
    modified = neomodel.DateTimeProperty(required=False)
    description = neomodel.StringProperty(required=False)
    brand_score = neomodel.FloatProperty(required=False)
    tweet_score = neomodel.FloatProperty(required=False)
    news_score = neomodel.FloatProperty(required=False)
    stock_price = neomodel.FloatProperty(required=False)
    stock_change = neomodel.FloatProperty(required=False)
    mkt_cap = neomodel.FloatProperty(required=False)

    def save(self):
        self.modified = datetime.datetime.now()
        super(Company, self).save()
        return self
Пример #5
0
class User(nm.StructuredNode):
    uid = nm.StringProperty(index=True, default=uuid4)
    create_datetime = nm.DateTimeProperty(default_now=True)
    email = nm.StringProperty(unique_index=True, required=True)
    password = nm.StringProperty(required=True)
    name = nm.StringProperty(required=True)

    liked_posts = nm.RelationshipTo('Post', 'LIKED', model=Like)
    followings = nm.RelationshipTo('User', 'FOLLOW')
Пример #6
0
class specificModelClass1(baseModelClass1):
    '''Models a class that is a specialisation of baseModelClass1
    
    NOTE:
        This class inherits the someLink relationship.
        Notice here that we are not re-specifying someLink
        to be pointing to specificModelClass2
    '''
    someOtherAttribute = neomodel.DateTimeProperty()
Пример #7
0
class News(neomodel.StructuredNode):
    headline = neomodel.StringProperty(unique_index=True, required=True)
    url = neomodel.StringProperty(required=False)
    publisher = neomodel.StringProperty(required=False)
    created_at = neomodel.DateTimeProperty(required=False)
    keywords = neomodel.ArrayProperty(neomodel.StringProperty(),
                                      required=False)
    score = neomodel.FloatProperty(required=False)

    cites = neomodel.RelationshipTo('Company', 'CITES')
Пример #8
0
class order(nm.StructuredNode):
    price = nm.FloatProperty()
    shares = nm.FloatProperty()
    date = nm.DateTimeProperty(default_now=True)

    if shares.__gt__ == 0:
        side = 'buy'
    else:
        side = 'sell'

    company = nm.RelationshipTo('Company', side.upper())
Пример #9
0
class User(neomodel.StructuredNode):
    id_str = neomodel.StringProperty(unique_index=True, required=True)
    name = neomodel.StringProperty(required=False)
    screen_name = neomodel.StringProperty(required=False)
    followers_count = neomodel.IntegerProperty(required=False)
    friends_count = neomodel.IntegerProperty(required=False)
    modified = neomodel.DateTimeProperty(required=False)
    created_at = neomodel.DateTimeProperty(required=False)
    description = neomodel.StringProperty(required=False)
    location = neomodel.StringProperty(required=False)
    coordinates = neomodel.ArrayProperty(required=False, default=[])
    time_zone = neomodel.StringProperty(required=False)
    url = neomodel.StringProperty(required=False)
    lang = neomodel.StringProperty(required=False)

    follows = neomodel.RelationshipTo('User', 'FOLLOWS')
    posts = neomodel.RelationshipTo('Tweet', 'POSTS')

    def save(self):
        self.modified = datetime.datetime.now()
        super(User, self).save()
Пример #10
0
class Event(neomodel.StructuredNode):
    name = neomodel.StringProperty(unique_index=True, required=True)
    weighting = neomodel.FloatProperty(required=False)
    modified = neomodel.DateTimeProperty(required=False)

    related_to = neomodel.RelationshipTo('Company', 'ABOUT')
    tweet_from = neomodel.RelationshipFrom('Tweet', 'TWEET_FROM')
    cited_from = neomodel.RelationshipFrom('News', 'CITE_FROM')

    def save(self):
        self.modified = datetime.datetime.now()
        super(Event, self).save()
        return self
Пример #11
0
class Company(nm.StructuredNode):
    name = nm.StringProperty(unique_index=True, require=True)
    symbol = nm.StringProperty()
    market = nm.StringProperty()
    list_date = nm.IntegerProperty()
    updated = nm.DateTimeProperty(default_now=True)

    concept = nm.RelationshipTo('Concept',
                                'COMPONENT_OF',
                                cardinality=nm.ZeroOrMore,
                                model=ComponentRel)
    industry = nm.RelationshipTo('Industry',
                                 'COMPONENT_OF',
                                 cardinality=nm.ZeroOrMore,
                                 model=ComponentRel)
    index = nm.RelationshipTo('Industry',
                              'COMPONENT_OF',
                              cardinality=nm.ZeroOrMore,
                              model=ComponentRel)
    customer = nm.RelationshipTo('Company',
                                 'SUPPLIES_TO',
                                 cardinality=nm.ZeroOrMore)
    product = nm.RelationshipTo('Product', 'PRODUCES', model=ProductRel)
Пример #12
0
class Contribution(neo.StructuredRel):
    time = neo.DateTimeProperty()
    contribtype = neo.StringProperty()
    comment = neo.StringProperty()
Пример #13
0
class Comment(nm.StructuredNode):
    create_datetime = nm.DateTimeProperty(default_now=True)
    content = nm.StringProperty(required=True)

    written_by = nm.Relationship('User', 'WRITTEN_BY')
Пример #14
0
class ProductRel(nm.StructuredRel):
    updated = nm.DateTimeProperty(default_now=True)
    rating = nm.IntegerProperty()
    contribution = nm.IntegerProperty()
Пример #15
0
class Like(nm.StructuredRel):
    create_datetime = nm.DateTimeProperty(default_now=True)
Пример #16
0
class StakeRel(nm.StructuredRel):
    updated = nm.DateTimeProperty(default_now=True)
    shareholding_ratio = nm.FloatProperty()
Пример #17
0
class ComponentRel(nm.StructuredRel):
    updated = nm.DateTimeProperty(default_now=True)
    rating = nm.IntegerProperty()
    relevancy = nm.IntegerProperty()
    weight = nm.FloatProperty()
Пример #18
0
class Index(nm.StructuredNode):
    name = nm.StringProperty(unique_index=True, require=True)
    symbol = nm.StringProperty()
    market = nm.StringProperty()
    list_date = nm.IntegerProperty()
    updated = nm.DateTimeProperty(default_now=True)
Пример #19
0
from flask_login import LoginManager, UserMixin, login_user, logout_user, current_user, login_required

from flask.views import MethodView
from builder import settings
from builder.oauth import OAuthSignIn, GitHubSignin
import optparse

from neomodel import config
import neomodel
config.DATABASE_URL = settings.NEO4J_URL

from crm import models

fields = {
    'value': lambda: neomodel.StringProperty(index=True, unique=True),
    'created': lambda: neomodel.DateTimeProperty(default_now=True),
    'created_by': lambda: neomodel.StringProperty(index=True),
}
rel_fields = {
    'value': neomodel.StringProperty,
    'evidence': neomodel.StringProperty,
    'confidence': neomodel.FloatProperty,
    'created': lambda: neomodel.DateTimeProperty(default_now=True),
    'created_by': neomodel.StringProperty,
    'updated': neomodel.DateTimeProperty,
}
models.build_models(settings.CRM_URL, fields=fields, rel_fields=rel_fields)

app = Flask(__name__, static_url_path=settings.STATIC_URL)
app.config['SECRET_KEY'] = settings.SECRET_KEY
app.config['SQLALCHEMY_DATABASE_URI'] = settings.SQLALCHEMY_DATABASE_URI