#!/usr/bin/env python3 # Import required modules import core import os import json import uuid import time categories = [ 'Food', 'Tools', 'Equipment' ] # 2 weeks listing_expires = (60 * 60 * 24 * 14) ##############################################3 def read_category(category): try: with open(core.data_directory + '/market/' + category + '.json', 'r') as market_file: markets = json.load(market_file) return markets except: market = [] market_object = json.dumps(market, indent=4) with open(core.data_directory + '/market/' + category + '.json', "w") as market_file: market_file.write(market_object) return market def add_listing(category, username, title, description, asking): title = title.replace('`', '\\`') description = description.replace('`', '\\`') asking = asking.replace('`', '\\`') markets = read_category(category) markets.insert(0, {'username': username, 'id': str(uuid.uuid4()), 'title':title, 'description': description, 'asking': asking, "time": time.time()}) markets_object = json.dumps(markets, indent=4) with open(core.data_directory + '/market/' + category + '.json', "w") as markets_file: markets_file.write(markets_object) def delete_listing(category, listing_id): markets = read_category(category) n_list = 0 for item in markets: if item['id'] == listing_id: del_n = n_list n_list = n_list + 1 del markets[del_n] ## markets.insert(0, {'username': username, 'id': str(uuid.uuid4()), 'title':title, 'description': description, 'asking': asking, "time": time.time()}) markets_object = json.dumps(markets, indent=4) with open(core.data_directory + '/market/' + category + '.json', "w") as markets_file: markets_file.write(markets_object) # Must be browsing locally, create fake link_id if 'link_id' not in os.environ: os.environ['link_id'] = 'local_test' # Check if current link_id is loged in as a user. current_session = core.get_current_session(os.environ['link_id']) # Display the header, i.e. title, menu, etc. core.header(current_session) # Display same thing, regardless of user logged in or not. if current_session: if 'var_new_listing' in os.environ: print('Title: `B444``b') print() print('Asking: `B444``b') print() print('Description: `B444``b') print() print('`!`[`:' + core.page_path + '/market.mu`title|asking|description|category=' + os.environ['var_new_listing'] + ']`!') if 'var_del_listing_id' in os.environ: delete_listing(os.environ['var_category'], os.environ['var_del_listing_id']) print('Deleted listing.') print('`!`[`:' + core.page_path + '/market.mu`category=' + os.environ['var_category'] + ']`!') if 'field_title' in os.environ and 'field_asking' in os.environ and 'field_description' in os.environ: print('Listing added.') print('`!`[`:' + core.page_path + '/market.mu`category=' + os.environ['var_category'] + ']`!') add_listing(os.environ['var_category'], current_session['username'], os.environ['field_title'], os.environ['field_description'], os.environ['field_asking']) if 'var_category' not in os.environ and 'var_listing_id' not in os.environ and 'var_new_listing' not in os.environ and 'var_del_listing_id' not in os.environ: print('`c`!Market`!') print('`a') print() for category in categories: print('`!`[<' + category + '>`:' + core.page_path + '/market.mu`category=' + category + ']`!') print() if 'var_listing_id' in os.environ: items = read_category(os.environ['var_category']) for item in items: if item['id'] == os.environ['var_listing_id']: delete = '' try: if current_session['username'] == item['username']: delete = '`Ff00`!`[`:' + core.page_path + '/market.mu`category=' + os.environ['var_category'] + '|del_listing_id=' + item['id'] + ']`!`f' except: pass print('`!`[`:' + core.page_path + '/market.mu`category=' + os.environ['var_category'] + ']`! `!`[<' + item['username'] + ' Profile>`:' + core.page_path + '/profile.mu`username=' + item['username'] + ']`! `!`[`:' + core.page_path + '/messages.mu`new_message=' + item['username'] + '|subject=Market: ' + item['title'] + ']`! ' + delete) print() print('`c`!' + item['title'] + '`!') print() print(core.convert_time(item['time'])) print(item['asking']) print('`a' + item['description']) print() if 'var_category' in os.environ and 'var_listing_id' not in os.environ and 'var_new_listing' not in os.environ and 'var_del_listing_id' not in os.environ and 'field_title' not in os.environ: items = read_category(os.environ['var_category']) print('`cMarket: `!' + os.environ['var_category'] + '`!') print() print('`!`[`:' + core.page_path + '/market.mu]`!') print('`a') print() if current_session: print('`!`[`:' + core.page_path + '/market.mu`new_listing=' + os.environ['var_category'] + ']`!') print() for item in items: if time.time() < item['time'] + listing_expires: print('`!`[`:' + core.page_path + '/market.mu`listing_id=' +item['id'] + '|category=' + os.environ['var_category'] + ']`! ' + core.convert_time(item['time']) + ' | `!' + item['title'] + '`! | ' + item['asking']) print() # Display footer text core.footer()