-
Notifications
You must be signed in to change notification settings - Fork 0
/
baseClasses.py
99 lines (87 loc) · 3.01 KB
/
baseClasses.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# [START imports]
import os
import urllib
from datetime import datetime
from google.appengine.api import users
from google.appengine.ext import ndb
import jinja2
import webapp2
JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
extensions=['jinja2.ext.autoescape'],
autoescape=True)
# [END imports]
# [START SearchResult]
class SearchResult(ndb.Model):
platform = ndb.StringProperty()
zipCode = ndb.StringProperty()
distance = ndb.FloatProperty()
website = ndb.StringProperty()
price = ndb.FloatProperty()
shippingCost = ndb.FloatProperty()
shippingTime = ndb.IntegerProperty()
condition = ndb.StringProperty()
title = ndb.StringProperty()
seller = ndb.StringProperty()
sellerRating = ndb.FloatProperty()
location = ndb.StringProperty()
postDate = ndb.DateProperty()
comments = ndb.TextProperty()
image = ndb.BlobProperty()
imageLink = ndb.StringProperty()
searchStatus = ndb.StringProperty()
searchScore = ndb.FloatProperty()
# [END SearchResult]
# [START WatchedSeller]
class WatchedSeller(ndb.Model):
userName = ndb.StringProperty()
url = ndb.StringProperty()
watchedResultTitle = ndb.StringProperty()
watchedResultURL = ndb.StringProperty()
sellerRating = ndb.FloatProperty()
timesFlagged = ndb.IntegerProperty()
numberOfPosts = ndb.IntegerProperty()
result1 = SearchResult()
result2 = SearchResult()
result3 = SearchResult()
result4 = SearchResult()
result5 = SearchResult()
# [END WatchedSeller]
# [START SearchPlatform]
class SearchPlatform(ndb.Model):
name = ndb.StringProperty()
url = ndb.StringProperty()
search = ndb.BooleanProperty()
# [END SearchPlatform]
# [START Project]
class Project(ndb.Model):
"""A main model for representing an individual Project entry."""
projectName = ndb.StringProperty(indexed=False)
author = ndb.StringProperty(indexed=False)
date = ndb.DateTimeProperty(auto_now_add=True)
company = ndb.StringProperty()
sku = ndb.IntegerProperty()
dateOfTheft = ndb.DateTimeProperty(auto_now_add=True)
listPrice = ndb.FloatProperty()
zipCode = ndb.StringProperty()
website = ndb.StringProperty()
status = ndb.StringProperty()
comments = ndb.TextProperty()
platforms = [
SearchPlatform(
name = 'eBay',
search = False),
SearchPlatform(
name = 'Craigslist',
search = False)
]
# [END Project]
def stringToKey(Key, entityName):
className, idparentheses = Key.split(", ")
id, parentheses = idparentheses.split(")")
return ndb.Key(entityName, int(id))
def stringToKeyWithParent(Key, parentName, entityName):
KeyWord, rest = Key.split("'"+parentName+"', ")
parentID, entityIDparentheses = rest.split(", '"+entityName+"', ")
entityID, parentheses = entityIDparentheses.split(")")
return ndb.Key(entityName, int(entityID), parent = ndb.Key(parentName, int(parentID)))