예제 #1
0
 def unfollow(self, guid):
     conn = Database.connect_database(self.PATH)
     with conn:
         cursor = conn.cursor()
         f = Following()
         ser = self.get_following()
         if ser is not None:
             f.ParseFromString(ser)
             for user in f.users:
                 if user.guid == guid:
                     f.users.remove(user)
         cursor.execute(
             '''INSERT OR REPLACE INTO following(id, serializedFollowing) VALUES (?,?)''',
             (1, f.SerializeToString()))
         conn.commit()
     conn.close()
예제 #2
0
    def setUp(self):

        self.db = Database(filepath="test.db")
        self.test_hash = "87e0555568bf5c7e4debd6645fc3f41e88df6ca8"
        self.test_hash2 = "97e0555568bf5c7e4debd6645fc3f41e88df6ca8"
        self.test_file = "Contents of test.txt"
        self.test_file2 = "Contents of test2.txt"

        self.sp = Profile()
        self.key = Profile().PublicKey()
        self.key.public_key = "Key"
        self.key.signature = "Sig"
        self.sp.name = "Test User"
        self.sp.guid_key.MergeFrom(self.key)
        self.sp.location = CountryCode.Value('UNITED_STATES')

        self.serialized_listings = Listings()
        self.lm = self.serialized_listings.ListingMetadata()
        self.lm.contract_hash = self.test_hash
        self.lm.title = "TEST CONTRACT TITLE"
        self.lm.price = 0
        self.lm.currency_code = "USD"
        self.lm.nsfw = False
        self.lm.origin = CountryCode.Value('ALL')

        self.u = Following.User()
        self.u.guid = '0000000000000000000000000000000000'
        self.u.pubkey = 'signed_pubkey'

        self.m = Metadata()
        self.m.name = 'Test User'
        self.m.handle = '@TestUser'
        self.m.avatar_hash = ''
        self.m.nsfw = False
        self.u.metadata.MergeFrom(self.m)

        self.f = Followers.Follower()
        self.f.guid = '0000000000000000000000000000000001'
        self.f.following = ''
        self.f.pubkey = ''
        self.f.metadata.MergeFrom(self.m)

        self.hm = self.db.filemap
        self.hm.delete_all()

        self.ps = self.db.profile
        self.ls = self.db.listings
        self.ks = self.db.keys
        self.fd = self.db.follow
        self.ms = self.db.messages
        self.ns = self.db.notifications
        self.vs = self.db.vendors
        self.bs = self.db.broadcasts
        self.moderators = self.db.moderators
        self.purchases = self.db.purchases
        self.sales = self.db.sales
        self.settings = self.db.settings
 def notify(self, guid, message):
     # pull the metadata for this node from the db
     f = Following()
     ser = FollowData().get_following()
     if ser is not None:
         f.ParseFromString(ser)
         for user in f.users:
             if user.guid == guid:
                 avatar_hash = user.metadata.avatar_hash
                 handle = user.metadata.handle
     timestamp = int(time.time())
     NotificationStore().save_notification(guid, handle, message, timestamp, avatar_hash)
     notification_json = {
         "notification": {
             "guid": guid.encode("hex"),
             "message": message,
             "timestamp": timestamp,
             "avatar_hash": avatar_hash.encode("hex")
         }
     }
     if handle:
         notification_json["notification"]["handle"] = handle
     self.ws.push(json.dumps(notification_json, indent=4))