Пример #1
0
 def load_community(cls, master, my_member, integrate_with_tribler = True, auto_join_channel = False):
     dispersy_database = DispersyDatabase.get_instance()
     try:
         dispersy_database.execute(u"SELECT 1 FROM community WHERE master = ?", (master.database_id,)).next()
     except StopIteration:
         return cls.join_community(master, my_member, my_member, integrate_with_tribler = integrate_with_tribler, auto_join_channel = auto_join_channel)
     else:
         return super(AllChannelCommunity, cls).load_community(master, integrate_with_tribler = integrate_with_tribler, auto_join_channel = auto_join_channel)
Пример #2
0
    def join_community(cls, cid, master_key, my_member, *args, **kargs):
        assert isinstance(cid, str)
        assert len(cid) == 20
        assert isinstance(master_key, str)
        assert not master_key or cid == sha1(master_key).digest()
        assert isinstance(my_member, MyMember)

        database = DispersyDatabase.get_instance()
        database.execute(u"INSERT INTO community(user, classification, cid, public_key) VALUES(?, ?, ?, ?)",
                         (my_member.database_id, cls.get_classification(), buffer(cid), buffer(master_key)))

        print "Join community", cid.encode("HEX")

        # new community instance
        community = cls(cid, master_key, *args, **kargs)

        # send out my initial dispersy-identity
        community.create_dispersy_identity()

        return community