Exemplo n.º 1
0
var db = require("google/appengine/ext/db");

var Hash = require("hash").Hash;    

var CLEANUP_RE = /[\!|\.|\(|\)|\[|\]|\{|\}|\?|\&|\@]/g;

var cleanupTagsString = exports.cleanupTagsString = function(str) {
    return str.replace(CLEANUP_RE, "").replace(/, /g, ",").replace(/,$/, ""); // .squeeze(" ")
}

/**
 * A Tag.
 */
var Tag = exports.Tag = db.Model("Tag", {
    count: new db.IntegerProperty({defaultValue: 0})
});

Object.defineProperty(Tag.prototype, "label", {
    get: function() {
        return this.key().name();
    }
});

Tag.prototype.toString = function() {
    return this.key().name();
}

/**
 * Taggable mixin.
 */
var Taggable = exports.Taggable = function() {};
Exemplo n.º 2
0
var DB = require("google/appengine/ext/db");

var Album = exports.Album = DB.Model("Album", {
	title: new DB.StringProperty({multiline: false}),
    desc: new DB.TextProperty(),
	created: new DB.DateTimeProperty({autoNowAdd: true}),
	updated: new DB.DateTimeProperty({autoNow: true}),
});

//二级页地址
Album.prototype.uri = function() {
	return '/photos/album/?id=' + this.key().id();
}
var db = require("google/appengine/ext/db");

var Message = exports.Message = db.Model("Message", {
    date: new db.DateProperty(),
    
    user: new db.StringProperty(),
    text: new db.StringProperty()
});

Message.getUserTimeline = function(userName) {
    var twiiits = Message.all().order("-date"),
        f = Followed.all().filter("user = "******"user IN ", f.following);
    } else {
      twiiits = twiiits.filter("user = "******"Followed", {
    user: new db.StringProperty(),
    following: new db.StringListProperty()
});


Followed.byUser = function(userName) {
    var followed = [], 
        f = Followed.all().filter("user = ", userName).get();
    
Exemplo n.º 4
0
var db = require("google/appengine/ext/db");

var Question = exports.Question = db.Model("Question", {
    author: new db.StringProperty({required: true, multiline: false}),
    question: new db.TextProperty(),
    created: new db.DateTimeProperty({autoNowAdd: true})
});
Exemplo n.º 5
0
var DB = require("google/appengine/ext/db");

/**
 * A content category.
 * Useful as a parent entity for other entities.
 */
var Category = exports.Category = DB.Model("Category", {
	label: new DB.StringProperty({required: true, multiline: false}),
	category: new DB.ReferenceProperty({referenceClass: Category}), // THINK: remove, use parent?
	index: new DB.IntegerProperty(), // optional, used for forced ordering.
	updated: new DB.DateTimeProperty({autoNow: true})
});

Object.defineProperty(Category.prototype, "term", {
    get: function() {
        return this.key().name();
    }
});

Category.prototype.toString = function () {
    return this.term;
}
Exemplo n.º 6
0
var db = require("google/appengine/ext/db");

/**
 * An image stored in the Datastore.
 */
var Image = exports.Image = db.Model("Image", {
    title: new db.StringProperty(),
    type: new db.StringProperty({defaultValue: "image/png"}),
    created: new db.DateTimeProperty({autoNowAdd: true}),
    original: new db.BlobProperty(),
    thumbnail: new db.BlobProperty()
});

Image.prototype.toString = function() {
    return "{title: " + this.title + ", type: " + this.type + "}"; 
}
Exemplo n.º 7
0
var DB = require("google/appengine/ext/db"),
    Key = DB.Key,
    objects = require("ringo/utils/objects");

var CLEANUP_RE = /[\!|\.|\(|\)|\[|\]|\{|\}|\?|\&|\@]/g;

var cleanupTagsString = exports.cleanupTagsString = function (str) {
    return str.replace(CLEANUP_RE, "").replace(/, /g, ",").replace(/,$/, "");
}

/**
 * A Tag.
 */
var Tag = exports.Tag = DB.Model("Tag", {
    count: new DB.IntegerProperty({defaultValue: 1})
});

Object.defineProperty(Tag.prototype, "label", {
    get: function () {
        return this.key().name();
    }
});

Tag.prototype.toString = function () {
    return this.key().name();
}

// Increment the count of an existing tag or insert.
// Runs inside a transaction. Returns the tag label.
var _incrementOrInsert = function (label) {
    var tag;
Exemplo n.º 8
0
var DB = require("google/appengine/ext/db");

exports.Oplog = DB.Model("Oplog", {
    controller: new DB.StringProperty(),
    action: new DB.StringProperty(),
    method: new DB.StringProperty(),
    params: new DB.StringProperty(),
    referer: new DB.StringProperty(),
    ip: new DB.StringProperty(),
    uid: new DB.StringProperty(),
    uname: new DB.StringProperty(),
    email: new DB.StringProperty(),
    created: new DB.DateTimeProperty({autoNowAdd: true}),
});
Exemplo n.º 9
0
var db = require('google/appengine/ext/db');
var {Album} = require('models/album');
var {File} = require('models/file');

// Чтобы приложение присвоило собственный идентификатор, который будет использован в ключе,
// задайте аргумент keyName в конструкторе экземпляра:
// new Picture({keyName: 'abc123'});
// Значение key_name не может начинаться с цифры и иметь форму __*__
// Полный ключ присваивается объекту во время создания в хранилище данных, и впоследствии его компоненты не могут быть изменены.
var Picture = exports.Picture = db.Model('Picture', {
  title     : new db.StringProperty(),
  file      : new db.ReferenceProperty({referenceClass: File, required: true}),
  updated   : new db.DateTimeProperty({autoNowAdd: true}),
  summary   : new db.TextProperty(),
  album     : new db.ReferenceProperty({referenceClass: Album}),
  tags      : new db.ListProperty({itemType: db.Category})
});