/v2ex/babel/__init__.py

https://github.com/Quasimo/v2ex · Python · 166 lines · 151 code · 15 blank · 0 comment · 0 complexity · f760aacb5c5f5e401868a5f4d31ddd66 MD5 · raw file

  1. SYSTEM_VERSION = '2.3.13'
  2. import datetime
  3. import hashlib
  4. from google.appengine.ext import db
  5. from google.appengine.api import memcache
  6. from google.appengine.api import users
  7. class Member(db.Model):
  8. num = db.IntegerProperty(indexed=True)
  9. auth = db.StringProperty(required=False, indexed=True)
  10. deactivated = db.IntegerProperty(required=True, default=0)
  11. username = db.StringProperty(required=False, indexed=True)
  12. username_lower = db.StringProperty(required=False, indexed=True)
  13. password = db.StringProperty(required=False, indexed=True)
  14. email = db.StringProperty(required=False, indexed=True)
  15. email_verified = db.IntegerProperty(required=False, indexed=True, default=0)
  16. website = db.StringProperty(required=False, default='')
  17. twitter = db.StringProperty(required=False, default='')
  18. twitter_oauth = db.IntegerProperty(required=False, default=0)
  19. twitter_oauth_key = db.StringProperty(required=False)
  20. twitter_oauth_secret = db.StringProperty(required=False)
  21. twitter_oauth_string = db.StringProperty(required=False)
  22. twitter_sync = db.IntegerProperty(required=False, default=0)
  23. twitter_id = db.IntegerProperty(required=False)
  24. twitter_name = db.StringProperty(required=False)
  25. twitter_screen_name = db.StringProperty(required=False)
  26. twitter_location = db.StringProperty(required=False)
  27. twitter_description = db.TextProperty(required=False)
  28. twitter_profile_image_url = db.StringProperty(required=False)
  29. twitter_url = db.StringProperty(required=False)
  30. twitter_statuses_count = db.IntegerProperty(required=False)
  31. twitter_followers_count = db.IntegerProperty(required=False)
  32. twitter_friends_count = db.IntegerProperty(required=False)
  33. twitter_favourites_count = db.IntegerProperty(required=False)
  34. location = db.StringProperty(required=False, default='')
  35. tagline = db.TextProperty(required=False, default='')
  36. bio = db.TextProperty(required=False, default='')
  37. avatar_large_url = db.StringProperty(required=False, indexed=False)
  38. avatar_normal_url = db.StringProperty(required=False, indexed=False)
  39. avatar_mini_url = db.StringProperty(required=False, indexed=False)
  40. created = db.DateTimeProperty(auto_now_add=True)
  41. last_modified = db.DateTimeProperty(auto_now=True)
  42. last_signin = db.DateTimeProperty()
  43. blocked = db.TextProperty(required=False, default='')
  44. class Counter(db.Model):
  45. name = db.StringProperty(required=False, indexed=True)
  46. value = db.IntegerProperty()
  47. created = db.DateTimeProperty(auto_now_add=True)
  48. last_increased = db.DateTimeProperty(auto_now=True)
  49. class Section(db.Model):
  50. num = db.IntegerProperty(indexed=True)
  51. name = db.StringProperty(required=False, indexed=True)
  52. title = db.StringProperty(required=False, indexed=True)
  53. title_alternative = db.StringProperty(required=False, indexed=True)
  54. header = db.TextProperty(required=False)
  55. footer = db.TextProperty(required=False)
  56. nodes = db.IntegerProperty(default=0)
  57. created = db.DateTimeProperty(auto_now_add=True)
  58. last_modified = db.DateTimeProperty(auto_now=True)
  59. class Node(db.Model):
  60. num = db.IntegerProperty(indexed=True)
  61. section_num = db.IntegerProperty(indexed=True)
  62. name = db.StringProperty(required=False, indexed=True)
  63. title = db.StringProperty(required=False, indexed=True)
  64. title_alternative = db.StringProperty(required=False, indexed=True)
  65. header = db.TextProperty(required=False)
  66. footer = db.TextProperty(required=False)
  67. category = db.StringProperty(required=False, indexed=True)
  68. topics = db.IntegerProperty(default=0)
  69. created = db.DateTimeProperty(auto_now_add=True)
  70. last_modified = db.DateTimeProperty(auto_now=True)
  71. class Topic(db.Model):
  72. num = db.IntegerProperty(indexed=True)
  73. node = db.ReferenceProperty(Node)
  74. node_num = db.IntegerProperty(indexed=True)
  75. node_name = db.StringProperty(required=False, indexed=True)
  76. node_title = db.StringProperty(required=False, indexed=False)
  77. member = db.ReferenceProperty(Member)
  78. member_num = db.IntegerProperty(indexed=True)
  79. title = db.StringProperty(required=False, indexed=True)
  80. content = db.TextProperty(required=False)
  81. content_rendered = db.TextProperty(required=False)
  82. content_length = db.IntegerProperty(default=0)
  83. hits = db.IntegerProperty(default=0)
  84. replies = db.IntegerProperty(default=0)
  85. created_by = db.StringProperty(required=False, indexed=True)
  86. last_reply_by = db.StringProperty(required=False, indexed=True)
  87. source = db.StringProperty(required=False, indexed=True)
  88. created = db.DateTimeProperty(auto_now_add=True)
  89. last_modified = db.DateTimeProperty(auto_now=True)
  90. last_touched = db.DateTimeProperty()
  91. class Reply(db.Model):
  92. num = db.IntegerProperty(indexed=True)
  93. topic = db.ReferenceProperty(Topic)
  94. topic_num = db.IntegerProperty(indexed=True)
  95. member = db.ReferenceProperty(Member)
  96. member_num = db.IntegerProperty(indexed=True)
  97. content = db.TextProperty(required=False)
  98. source = db.StringProperty(required=False, indexed=True)
  99. created_by = db.StringProperty(required=False, indexed=True)
  100. created = db.DateTimeProperty(auto_now_add=True)
  101. last_modified = db.DateTimeProperty(auto_now=True)
  102. class Avatar(db.Model):
  103. num = db.IntegerProperty(indexed=True)
  104. name = db.StringProperty(required=False, indexed=True)
  105. content = db.BlobProperty()
  106. class Note(db.Model):
  107. num = db.IntegerProperty(indexed=True)
  108. member = db.ReferenceProperty(Member)
  109. member_num = db.IntegerProperty(indexed=True)
  110. title = db.StringProperty(required=False, indexed=True)
  111. content = db.TextProperty(required=False)
  112. body = db.TextProperty(required=False)
  113. length = db.IntegerProperty(indexed=False, default=0)
  114. edits = db.IntegerProperty(indexed=False, default=1)
  115. created = db.DateTimeProperty(auto_now_add=True)
  116. last_modified = db.DateTimeProperty(auto_now=True)
  117. class PasswordResetToken(db.Model):
  118. token = db.StringProperty(required=False, indexed=True)
  119. email = db.StringProperty(required=False, indexed=True)
  120. member = db.ReferenceProperty(Member)
  121. valid = db.IntegerProperty(required=False, indexed=True, default=1)
  122. timestamp = db.IntegerProperty(required=False, indexed=True, default=0)
  123. class Place(db.Model):
  124. num = db.IntegerProperty(required=False, indexed=True)
  125. ip = db.StringProperty(required=False, indexed=True)
  126. name = db.StringProperty(required=False, indexed=False)
  127. visitors = db.IntegerProperty(required=False, default=0, indexed=True)
  128. longitude = db.FloatProperty(required=False, default=0.0, indexed=True)
  129. latitude = db.FloatProperty(required=False, default=0.0, indexed=True)
  130. created = db.DateTimeProperty(auto_now_add=True)
  131. last_modified = db.DateTimeProperty(auto_now=True)
  132. class PlaceMessage(db.Model):
  133. num = db.IntegerProperty(indexed=True)
  134. place = db.ReferenceProperty(Place)
  135. place_num = db.IntegerProperty(indexed=True)
  136. member = db.ReferenceProperty(Member)
  137. content = db.TextProperty(required=False)
  138. in_reply_to = db.SelfReferenceProperty()
  139. source = db.StringProperty(required=False, indexed=True)
  140. created = db.DateTimeProperty(auto_now_add=True)
  141. class Checkin(db.Model):
  142. place = db.ReferenceProperty(Place)
  143. member = db.ReferenceProperty(Member)
  144. last_checked_in = db.DateTimeProperty(auto_now=True)
  145. class Site(db.Model):
  146. num = db.IntegerProperty(required=False, indexed=True)
  147. title = db.StringProperty(required=False, indexed=False)
  148. slogan = db.StringProperty(required=False, indexed=False)
  149. description = db.TextProperty(required=False)
  150. domain = db.StringProperty(required=False, indexed=False)
  151. analytics = db.StringProperty(required=False, indexed=False)