Skip to content
This repository was archived by the owner on May 16, 2019. It is now read-only.

Commit 409cdad

Browse files
committed
Don't try to update moderators on contracts if no listings
1 parent d0976b2 commit 409cdad

File tree

1 file changed

+41
-38
lines changed

1 file changed

+41
-38
lines changed

market/network.py

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,46 +1117,49 @@ def update_listings(self):
11171117
pass
11181118

11191119
def update_moderators_on_listings(self, moderator_list):
1120-
l = objects.Listings()
1121-
l.ParseFromString(self.db.listings.get_proto())
1122-
for listing in l.listing:
1123-
contract_hash = listing.contract_hash
1124-
c = Contract(self.db, hash_value=contract_hash, testnet=self.protocol.multiplexer.testnet)
1125-
contract_moderators = []
1126-
if "moderators" in c.contract["vendor_offer"]["listing"]:
1127-
for m in c.contract["vendor_offer"]["listing"]["moderators"]:
1128-
contract_moderators.append(m["guid"])
1129-
mods_to_remove = list(set(contract_moderators) - set(moderator_list))
1130-
mods_to_add = list(set(moderator_list) - set(contract_moderators))
1131-
for mod in mods_to_add:
1132-
mod_info = self.db.moderators.get_moderator(mod)
1133-
if mod_info is not None:
1134-
moderator_json = {
1135-
"guid": mod,
1136-
"name": mod_info[5],
1137-
"avatar": mod_info[7].encode("hex"),
1138-
"short_description": mod_info[6],
1139-
"fee": str(mod_info[8]) + "%",
1140-
"blockchain_id": mod_info[4],
1141-
"pubkeys": {
1142-
"guid": mod_info[1].encode("hex"),
1143-
"bitcoin": {
1144-
"key": mod_info[2].encode("hex"),
1145-
"signature": base64.b64encode(mod_info[3])
1120+
try:
1121+
l = objects.Listings()
1122+
l.ParseFromString(self.db.listings.get_proto())
1123+
for listing in l.listing:
1124+
contract_hash = listing.contract_hash
1125+
c = Contract(self.db, hash_value=contract_hash, testnet=self.protocol.multiplexer.testnet)
1126+
contract_moderators = []
1127+
if "moderators" in c.contract["vendor_offer"]["listing"]:
1128+
for m in c.contract["vendor_offer"]["listing"]["moderators"]:
1129+
contract_moderators.append(m["guid"])
1130+
mods_to_remove = list(set(contract_moderators) - set(moderator_list))
1131+
mods_to_add = list(set(moderator_list) - set(contract_moderators))
1132+
for mod in mods_to_add:
1133+
mod_info = self.db.moderators.get_moderator(mod)
1134+
if mod_info is not None:
1135+
moderator_json = {
1136+
"guid": mod,
1137+
"name": mod_info[5],
1138+
"avatar": mod_info[7].encode("hex"),
1139+
"short_description": mod_info[6],
1140+
"fee": str(mod_info[8]) + "%",
1141+
"blockchain_id": mod_info[4],
1142+
"pubkeys": {
1143+
"guid": mod_info[1].encode("hex"),
1144+
"bitcoin": {
1145+
"key": mod_info[2].encode("hex"),
1146+
"signature": base64.b64encode(mod_info[3])
1147+
}
11461148
}
11471149
}
1148-
}
1149-
if "moderators" not in c.contract["vendor_offer"]["listing"]:
1150-
c.contract["vendor_offer"]["listing"]["moderators"] = []
1151-
c.contract["vendor_offer"]["listing"]["moderators"].append(moderator_json)
1152-
for mod in mods_to_remove:
1153-
for rem in c.contract["vendor_offer"]["listing"]["moderators"]:
1154-
if rem["guid"] == mod:
1155-
c.contract["vendor_offer"]["listing"]["moderators"].remove(rem)
1156-
if len(c.contract["vendor_offer"]["listing"]["moderators"]) == 0:
1157-
del c.contract["vendor_offer"]["listing"]["moderators"]
1158-
c.previous_title = None
1159-
c.save()
1150+
if "moderators" not in c.contract["vendor_offer"]["listing"]:
1151+
c.contract["vendor_offer"]["listing"]["moderators"] = []
1152+
c.contract["vendor_offer"]["listing"]["moderators"].append(moderator_json)
1153+
for mod in mods_to_remove:
1154+
for rem in c.contract["vendor_offer"]["listing"]["moderators"]:
1155+
if rem["guid"] == mod:
1156+
c.contract["vendor_offer"]["listing"]["moderators"].remove(rem)
1157+
if len(c.contract["vendor_offer"]["listing"]["moderators"]) == 0:
1158+
del c.contract["vendor_offer"]["listing"]["moderators"]
1159+
c.previous_title = None
1160+
c.save()
1161+
except Exception:
1162+
pass
11601163

11611164
@staticmethod
11621165
def cache(file_to_save, filename):

0 commit comments

Comments
 (0)