Exemple #1
0
class KeyValueCache(db.Model):

    value = db.BlobProperty()
    created = db.DateTimeProperty()
    expires = db.DateTimeProperty()

    def is_expired(self):
        return datetime.datetime.now() > self.expires

    @staticmethod
    def get_namespaced_key(key, namespace=""):
        return "%s:%s" % (namespace, key)

    @staticmethod
    def get(key, namespace=""):

        namespaced_key = KeyValueCache.get_namespaced_key(key, namespace)
        key_value = KeyValueCache.get_by_key_name(namespaced_key)

        if key_value and not key_value.is_expired():
            return pickle.loads(key_value.value)

        return None

    @staticmethod
    def set(key,
            result,
            time=DEFAULT_LAYER_CACHE_EXPIRATION_SECONDS,
            namespace=""):

        namespaced_key = KeyValueCache.get_namespaced_key(key, namespace)
        dt = datetime.datetime.now()

        dt_expires = datetime.datetime.max
        if time > 0:
            dt_expires = dt + datetime.timedelta(seconds=time)

        key_value = KeyValueCache.get_or_insert(key_name=namespaced_key,
                                                value=pickle.dumps(result),
                                                created=dt,
                                                expires=dt_expires)

        if key_value.created != dt:
            # Already existed, need to overwrite
            key_value.value = pickle.dumps(result)
            key_value.created = dt
            key_value.expires = dt_expires
            key_value.put()

    @staticmethod
    def delete(key, namespace=""):

        namespaced_key = KeyValueCache.get_namespaced_key(key, namespace)
        key_value = KeyValueCache.get_by_key_name(namespaced_key)

        if key_value:
            db.delete(key_value)
Exemple #2
0
class Mock(db.Model):
    name = db.StringProperty(multiline=False)
    data = db.BlobProperty()
    mimetype = db.StringProperty(multiline=False)
    mocklist = db.ReferenceProperty(MockList)
    date = db.DateTimeProperty(auto_now_add=True)

    def get_id(self):
        return id_encode(self.key().id())
Exemple #3
0
class _HugeTaskPayload(db.Model):
    """Model object to store task payload."""

    payload = db.BlobProperty()

    @classmethod
    def kind(cls):
        """Returns entity kind."""
        return "_AE_MR_TaskPayload"
Exemple #4
0
class Map(db.Model):
    name = db.StringProperty()
    map_x = db.IntegerProperty()
    map_y = db.IntegerProperty()
    map_danger1_x = db.IntegerProperty()
    map_danger1_y = db.IntegerProperty()
    map_danger2_x = db.IntegerProperty()
    map_danger2_y = db.IntegerProperty()
    map_danger3_x = db.IntegerProperty()
    map_danger3_y = db.IntegerProperty()
    map_danger4_x = db.IntegerProperty()
    map_danger4_y = db.IntegerProperty()
    map_danger5_x = db.IntegerProperty()
    map_danger5_y = db.IntegerProperty()
    map_danger6_x = db.IntegerProperty()
    map_danger6_y = db.IntegerProperty()
    map_danger7_x = db.IntegerProperty()
    map_danger7_y = db.IntegerProperty()
    map_danger8_x = db.IntegerProperty()
    map_danger8_y = db.IntegerProperty()
    map_danger9_x = db.IntegerProperty()
    map_danger9_y = db.IntegerProperty()
    map_danger10_x = db.IntegerProperty()
    map_danger10_y = db.IntegerProperty()
    newPos = []
    newPos.append([map_danger1_x, map_danger1_y])
    newPos.append([map_danger2_x, map_danger2_y])
    newPos.append([map_danger3_x, map_danger3_y])
    newPos.append([map_danger4_x, map_danger4_y])
    newPos.append([map_danger5_x, map_danger5_y])
    newPos.append([map_danger6_x, map_danger6_y])
    newPos.append([map_danger7_x, map_danger7_y])
    newPos.append([map_danger8_x, map_danger8_y])
    newPos.append([map_danger9_x, map_danger9_y])
    newPos.append([map_danger10_x, map_danger10_y])
    hazard = newPos
    visited = []
    
    image = db.BlobProperty()
    date = db.DateTimeProperty(auto_now_add=True)
    
    def getWidth(self):
        return self.map_x
    
    def getHeight(self):
        return self.map_y
    
    def pathFinderVisited(self, x, y):
        self.visited.append([x, y])
        self.visited.sort()
    
    def isBlocked(self, x, y):
        if [x, y] in self.hazard:
            return 1
    
    def getCost(self):
        return 1
Exemple #5
0
class Game(db.Model):
	title = db.StringProperty()
	subtitle = db.StringProperty()
	teaser = db.TextProperty()
	background_image = db.BlobProperty()
	maps_location = db.GeoPtProperty()
	maps_zoom = db.IntegerProperty()
	start_xp = db.IntegerProperty(default=0)
	admin_only = db.BooleanProperty(default=False)
Exemple #6
0
class ImageFile(db.Model):
    width = db.IntegerProperty()
    height = db.IntegerProperty()
    format = db.IntegerProperty()
    data = db.BlobProperty()

    owner = db.ReferenceProperty(Ego, collection_name = "image_files")
    private = db.BooleanProperty(default=True)      #public photos can be used by anyone
    approved = db.BooleanProperty(default=False)
Exemple #7
0
class Resource(db.Model):
    """Resources are blobs in the datastore that can contain pages of HTML,
    stylesheets, images, or templates.  A Resource is just like a small file
    except for a few additional features:
        1. Resources are grouped under ResourceBundles.
        2. Resources can be fetched from the datastore or from files on disk.
        3. We can store localized variants of a resource and select one.
        4. We support compiling and rendering a resource as a Django template.
        5. We cache the fetched, compiled, or rendered result in RAM.
    The key_name is a resource_name or resource_name + ':' + language_code.
    All Resource entities should be children of a ResourceBundle."""
    cache_seconds = db.FloatProperty(default=1.0)  # cache TTL of resource
    content = db.BlobProperty()  # binary data or UTF8-encoded template text
    last_modified = db.DateTimeProperty(auto_now=True)  # for bookkeeping

    RESOURCE_DIR = 'resources'  # directory containing resource files

    @staticmethod
    def list_files():
        """Returns a list of the files in the resource directory."""
        return os.listdir(Resource.RESOURCE_DIR)

    @staticmethod
    def load_from_file(name):
        """Creates a Resource from a file, or returns None if no such file."""
        try:
            file = open(Resource.RESOURCE_DIR + '/' + name)
            return Resource(key_name=name, content=file.read())
        except IOError:
            return None

    @staticmethod
    def get(name, bundle_name=None):
        """Fetches a resource, first looking in the datastore, then falling
        back to a file on disk.  Returns None if neither is found."""
        parent = bundle_name and db.Key.from_path('ResourceBundle', bundle_name)
        return (parent and Resource.get_by_key_name(name, parent=parent) or
                Resource.load_from_file(name))

    def get_template(self):
        """Compiles the content of this resource into a Template object."""
        if not hasattr(self, 'template'):
            try:
                self.template = django.template.Template(
                    self.content.decode('utf-8'),
                    origin=django.template.base.Origin('Resource'),
                    name=self.key().name())
            except:
                # Exception here is silently ignored otherwise.
                logging.error(
                    'Error loading template %s.' % self.key().name(),
                    exc_info=True)
                self.template = django.template.Template(
                    'Internal Server Error',
                    origin=django.template.base.Origin('Resource'),
                    name=self.key().name())
        return self.template
class Movie(db.Model):
    title = db.StringProperty()
    picture = db.BlobProperty(default=None)
    full_content = db.TextProperty(default=None)
    summary = db.TextProperty(default=None)
    date = db.DateTimeProperty(auto_now_add=True)
    release_date = db.DateTimeProperty(default=None)
    rating_average = db.FloatProperty(default=0.0)
    rating_count = db.IntegerProperty(default=0)
Exemple #9
0
class Bookmark(db.Model):
  description = db.StringProperty()
  favIcon     = db.BlobProperty()
  locator     = db.LinkProperty()
  timeStamp   = db.DateTimeProperty(auto_now_add = True)
  title       = db.StringProperty()
  #owner       = db.ReferenceProperty(Owner, collection_name = 'bookmarks')

  '''
Exemple #10
0
class TopMovieImage(BaseEntity):
    imdb_id = db.StringProperty()
    img_data = db.BlobProperty()
    width = db.IntegerProperty()
    height = db.IntegerProperty()
    content_type = db.StringProperty()

    def __unicode__(self):
        return "%s (%s)" % (self.imdb_id, self.content_type)
Exemple #11
0
class ArticleOfClothing(db.Model):
  """Models an article of clothing with type, temperatureBands, image, and name"""
  name = db.StringProperty()
  clothingType = db.CategoryProperty()
  temperatureBands = db.ListProperty(long)
  nonDummyData = db.IntegerProperty()
  image = db.BlobProperty()
  imagePath = db.StringProperty()
  has_image = db.StringProperty()
Exemple #12
0
class ForumImages(db.Model):
    imageid = db.StringProperty()  # key_name
    created = db.DateTimeProperty(auto_now_add=True)
    title = db.StringProperty()
    format = db.StringProperty()  # jpg, gif, png
    size = db.IntegerProperty()
    width = db.IntegerProperty()
    height = db.IntegerProperty()
    bits = db.BlobProperty(default=None)
Exemple #13
0
class WebSite(db.Model):
    author = db.UserProperty()
    title = db.StringProperty(required=True)
    link = db.LinkProperty(required=True)
    description = db.TextProperty(required=True)
    tags = db.ListProperty(db.Category)
    srclink = db.StringProperty() #XXX
    is_public = db.BooleanProperty(required=True, default=False)
    screencap = db.BlobProperty()
    created = db.DateTimeProperty(auto_now_add=True)
    deschtml = db.TextProperty()
    likedby = db.StringListProperty()
    votes = db.IntegerProperty(default=0)
    
    def get_tags(self):
        return ' '.join([urllib.unquote(tag) for tag in self.tags])
  
    def set_tags(self, tags):
        if tags:
            tags = tags.strip(' ')
            tags = [db.Category(urllib.quote(tag.strip())) for tag in tags.split(' ')]
            self.tags = [tag for tag in tags if not tag in self.tags]
  
    tags_spc = property(get_tags,set_tags)

    def update_tags(self,update):
        if self.tags: 
            for tag in self.tags:
                tag_ = urllib.unquote(tag)
                tags = Tag.all().filter('tag',tag_).fetch(1) 
                if tags == []:
                    tagnew = Tag(tag=tag_,entrycount=1)
                    tagnew.put()
                else:
                    if not update:
                        tags[0].entrycount+=1
                        tags[0].put()

    def save(self):
        self.update_tags(False)
        self.put()
        
    def update_vote(self, user):
        if user.nickname() not in self.likedby and user != self.author:
            self.votes = self.votes + 1
            self.likedby.append(user.nickname()) 
            self.put()
            return True
        else: return False
        
    def update_screencap(self):
        url = 'http://images.websnapr.com/?size=M&key=%s&url=%s' % (get_apikey(), self.link)
        result = urlfetch.fetch(url)
        if result.status_code == 200:
            self.screencap = db.Blob(result.content)
            self.put()
Exemple #14
0
class Paste(db.Model):
    user = db.UserProperty(required=True)
    time = db.DateTimeProperty(auto_now_add=True)
    title = db.StringProperty()
    code = db.BlobProperty(required=True)
    language = db.StringProperty()
    views = db.IntegerProperty(default=0)
    commentsEnabled = db.BooleanProperty()
    #used for redirection stuff
    pasteId = db.StringProperty()
Exemple #15
0
class User(db.Model):
    location = db.StringProperty()
    name = db.StringProperty()
    clientId = db.StringProperty()
    extra = db.BlobProperty()
    lastmodified = db.DateTimeProperty(auto_now=True)
    def get_object(self):
        return {'name': self.name, 'clientId': self.clientId, 'extra': self.extra}
    def __repr__(self):
        return '<User location=%r clientId=%r name=%r lastmodified=%r len(extra)=%d />'%(self.location, self.clientId, self.name, self.lastmodified, len(self.extra) if self.extra else 0)
Exemple #16
0
class Product(db.Model):
    author = db.UserProperty()
    description = db.StringProperty(required=True, multiline=True)
    title = db.StringProperty(required=False, multiline=False)
    image = db.BlobProperty(required=True)
    imagetype = db.StringProperty(required=True)
    date = db.DateTimeProperty(auto_now_add=True)
    price = db.FloatProperty(default=19.99)
    available = db.BooleanProperty(default=True)
    recommended = db.ListProperty(db.Key)
Exemple #17
0
class Products(db.Model):
    category=db.StringProperty(required=True)
    subcategory=db.StringProperty(required=True)
    name=db.StringProperty(required=True)
    price=db.IntegerProperty(required=True)
    brand=db.StringProperty(required=True)
    quantity=db.IntegerProperty(required=True)
    info=db.TextProperty(required=True)
    image=db.BlobProperty()
    discount=db.IntegerProperty(required=True)
Exemple #18
0
class TransitAppFormProgress(db.Model):
    """Holds on to key pieces of form progress that cannot be sent through invisible input fields."""
    progress_uuid = db.StringProperty(indexed=True, required=True)
    last_updated = db.DateTimeProperty(auto_now=True)
    info_form_pickle = db.BlobProperty(
    )  # dictionary of stuff from original form, pickled.
    agency_form_pickle = db.BlobProperty(
    )  # dictionary of stuff from agency form, pickled.
    screen_shot_families = db.StringListProperty()

    @staticmethod
    def new_with_uuid():
        return TransitAppFormProgress(
            progress_uuid=str(uuid4()).replace('-', ''))

    @staticmethod
    def get_with_uuid(uuid):
        return TransitAppFormProgress.all().filter('progress_uuid =',
                                                   uuid).get()
Exemple #19
0
class Post(db.Model):
    author = db.StringProperty()
    title = db.StringProperty(required=True)
    body = db.TextProperty(required=True)
    brief = db.TextProperty()
    tag = db.StringProperty()
    tagli = db.StringListProperty()
    adddate = db.DateTimeProperty(auto_now_add=True)
    time = db.StringProperty()
    image = db.BlobProperty()
Exemple #20
0
class MaskImage(db.Model):
    mask_mode = db.StringProperty()
    image = db.BlobProperty()
    access_key = db.StringProperty()
    archive_list_key = db.ReferenceProperty(ArchiveList)
    read_count = db.IntegerProperty()
    access_code = db.StringProperty()
    mask_type = db.StringProperty()
    created_at = db.DateTimeProperty(auto_now_add=True)
    updated_at = db.DateTimeProperty(auto_now_add=True)
Exemple #21
0
class InstaData(db.Model):
    instagram_id = db.IntegerProperty()
    url = db.StringProperty()
    image_url = db.StringProperty()
    content_type = db.StringProperty()
    thumbnail = db.BlobProperty()
    created_at = db.DateTimeProperty()
    twitter_name = db.StringProperty()
    twitter_message = db.StringProperty(multiline=True)
    twitter_url = db.StringProperty()
Exemple #22
0
class Media(db.Model):
    name = db.StringProperty()
    mtype = db.StringProperty()
    bits = db.BlobProperty()
    date = db.DateTimeProperty(auto_now_add=True)
    download = db.IntegerProperty(default=0)

    @property
    def size(self):
        return len(self.bits)
Exemple #23
0
class VerifiedScore(db.Model):
    value = db.IntegerProperty(required=True)
    time = db.IntegerProperty(required=True)  # seconds ?
    proof = db.BlobProperty(required=True)
    seed = db.ByteStringProperty(required=True)
    version = db.IntegerProperty(required=True)
    dateTime = db.DateTimeProperty(auto_now_add=True)
    conflictingReviewers = db.StringListProperty()
    verifier = db.StringProperty(required=True)
    approvedByAdmin = db.BooleanProperty(required=True)
Exemple #24
0
class Sketcher(db.Model):
    userID = db.StringProperty()
    name = db.StringProperty()
    profileText = db.TextProperty()
    location = db.StringProperty()
    avatar = db.BlobProperty()
    url1 = db.StringProperty()
    url2 = db.StringProperty()
    url3 = db.StringProperty()
    url4 = db.StringProperty()
Exemple #25
0
class File(db.Model):
    account = db.ReferenceProperty(Account)
    profile = db.ReferenceProperty(Profile)
    file = db.BlobProperty()
    title = db.StringProperty()
    description = db.TextProperty()
    mime = db.StringProperty()
    size = db.IntegerProperty()
    created = db.DateTimeProperty(auto_now_add=True)
    updated = db.DateTimeProperty(auto_now=True)
Exemple #26
0
class StaticContent(db.Model):
    """Container for statically served content.

    The serving path for content is provided in the key name.
    """
    body = db.BlobProperty()
    content_type = db.StringProperty(required=True)
    last_modified = db.DateTimeProperty(required=True, auto_now=True)
    etag = aetycoon.DerivedProperty(lambda x: hashlib.sha1(x.body).hexdigest())
    indexed = db.BooleanProperty(required=True, default=True)
Exemple #27
0
class Racer(db.Model):
    email = db.EmailProperty()
    driver = db.UserProperty()
    name = db.StringProperty()
    city = db.StringProperty()
    state = db.StringProperty()
    points = db.IntegerProperty()
    car = db.ReferenceProperty(Car)
    sponsor = db.ReferenceProperty(Sponsor)
    picture = db.BlobProperty()
class Movie(db.Model):
    owner = db.UserProperty()
    filename = db.StringProperty()
    intermediate_data = db.StringProperty(default=None)
    blob = db.BlobProperty(default=None)
    length = db.IntegerProperty(default=None)
    bytes_uploaded = db.IntegerProperty(default=0)
    uploaded = db.BooleanProperty(default=False)
    geoAddress = db.StringProperty(default=None)
    datetime = db.DateTimeProperty(auto_now_add=True)
Exemple #29
0
class Upload(db.Model):
    className = db.ReferenceProperty(Class)
    hwName = db.ReferenceProperty(Homework)
    owner = db.UserProperty()  #the logged-in user, the one who uploaded it
    ownerNickname = db.StringProperty()
    date = db.DateTimeProperty()  #time of submission
    file = db.BlobProperty()  # the file
    fileName = db.StringProperty()
    isPublic = db.BooleanProperty(
    )  #public means world-readable. only a teacher can make a solution public
Exemple #30
0
class Game(db.Model):
    name = db.StringProperty(required=True)
    is_active = db.BooleanProperty(required=True)
    winner = db.ReferenceProperty(User, collection_name="won_games")
    zone = db.ReferenceProperty(Zone, collection_name="game")
    owner = db.ReferenceProperty(User, collection_name="created_games", required=True)
    map = db.BlobProperty()

    def __eq__(self, other):
        return isinstance(other, Game) and other.key() == self.key()