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

Commit 493b028

Browse files
committed
Fix bug updating listings
1 parent 409cdad commit 493b028

File tree

1 file changed

+39
-38
lines changed

1 file changed

+39
-38
lines changed

market/network.py

Lines changed: 39 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1120,46 +1120,47 @@ def update_moderators_on_listings(self, moderator_list):
11201120
try:
11211121
l = objects.Listings()
11221122
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-
}
1123+
except Exception:
1124+
return
1125+
for listing in l.listing:
1126+
contract_hash = listing.contract_hash
1127+
c = Contract(self.db, hash_value=contract_hash, testnet=self.protocol.multiplexer.testnet)
1128+
contract_moderators = []
1129+
if "moderators" in c.contract["vendor_offer"]["listing"]:
1130+
for m in c.contract["vendor_offer"]["listing"]["moderators"]:
1131+
contract_moderators.append(m["guid"])
1132+
mods_to_remove = list(set(contract_moderators) - set(moderator_list))
1133+
mods_to_add = list(set(moderator_list) - set(contract_moderators))
1134+
for mod in mods_to_add:
1135+
mod_info = self.db.moderators.get_moderator(mod)
1136+
if mod_info is not None:
1137+
moderator_json = {
1138+
"guid": mod,
1139+
"name": mod_info[5],
1140+
"avatar": mod_info[7].encode("hex"),
1141+
"short_description": mod_info[6],
1142+
"fee": str(mod_info[8]) + "%",
1143+
"blockchain_id": mod_info[4],
1144+
"pubkeys": {
1145+
"guid": mod_info[1].encode("hex"),
1146+
"bitcoin": {
1147+
"key": mod_info[2].encode("hex"),
1148+
"signature": base64.b64encode(mod_info[3])
11481149
}
11491150
}
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
1151+
}
1152+
if "moderators" not in c.contract["vendor_offer"]["listing"]:
1153+
c.contract["vendor_offer"]["listing"]["moderators"] = []
1154+
c.contract["vendor_offer"]["listing"]["moderators"].append(moderator_json)
1155+
for mod in mods_to_remove:
1156+
for rem in c.contract["vendor_offer"]["listing"]["moderators"]:
1157+
if rem["guid"] == mod:
1158+
c.contract["vendor_offer"]["listing"]["moderators"].remove(rem)
1159+
if "moderators" in c.contract["vendor_offer"]["listing"] and \
1160+
len(c.contract["vendor_offer"]["listing"]["moderators"]) == 0:
1161+
del c.contract["vendor_offer"]["listing"]["moderators"]
1162+
c.previous_title = None
1163+
c.save()
11631164

11641165
@staticmethod
11651166
def cache(file_to_save, filename):

0 commit comments

Comments
 (0)