""" Demonstrate basic usage """ import sys # Add the src directory to the Python path so we can import the API client and wrappers sys.path.insert(0, './src/') from trustcafeapiwrapper import APIClient import os, simplejson as json # Handle environment variables from dotenv import load_dotenv load_dotenv() if not os.getenv("client_id") or not os.getenv("client_secret"): raise Exception("Please set client_id and client_secret in your environment variables.") # Initialize API client with credentials from environment variables ''' THIS IS THE IMPORTANT BIT ''' API = APIClient( client_id=os.getenv("client_id"), client_secret=os.getenv("client_secret"), debug=False # Set to True to enable debug output ) # Keep a token cache to avoid unnecessary sign-ins during development. # (In production, you'd handle this more robustly and securely) if os.path.exists("token_data.json"): with open("token_data.json", "r") as f: token_data = json.load(f) API.set_token(token_data) # Get a new one if we don't have one or if the existing one is expired if not API.is_token_valid(): tokendata = API.sign_in() with open("token_data.json", "w") as f: json.dump(tokendata, f, indent=2) ''' END IMPORTANT BIT ''' # This is just to stop bunging up the console with output whilst # doing these tests below def save_response(response): with open("test_output.json", "w") as f: json.dump(response, f, indent=2) # print("-----------Get a user profile----------------") # profile = API.run_job('userprofile.get', "simon-little") # print(profile) # print("-------------- Get a branch -----------------") # branch = API.run_job('branch.get', "music") # print(branch) # print("-------------- Get a post -------------------") # post = API.run_job('post.get', "1774951384-98fe38df") # print(post) # print("-----------------------------") # feed = API.run_job('post.listbybranch', "music") # print(feed) # print("----------------------------z # branchlist = API.run_job('branch.listbyname') # print(branchlist) # print("-----------------------------") # branchlist = API.run_job('branch.listbyname', { # 'GSIByName': 'boopscope test', # 'sk': 'subwiki#boopscope-test', # 'pk': 'subwiki#boopscope-test', # 'entity': 'subwiki' # }) # print(branchlist) # print("-----------------------------") # feed = API.run_job('post.listbyuserprofile', "simon-little") # print(feed) # print("-----------------------------") # save_response(API.run_job('post.create', { # "blurLabel": None, # "cardUrl": None, # "postText": "This is a test post created via the API wrapper.", # "collaborative": False, # "parent": { # "pk": "maintrunk#maintrunk", # "sk": "maintrunk#maintrunk" # } # })) # save_response(API.run_job('comment.create', { # "blurLabel": None, # "commentText": "This is a test comment created via the API wrapper.", # "parent": { # "pk": "maintrunk#maintrunk", # "sk": "post#1774951384-98fe38df", # "slug": "1774951384-98fe38df" # }, # "topLevel": { # "pk": "maintrunk#maintrunk", # "sk": "post#1774951384-98fe38df" # }, # "version": 3 # })) # save_response(API.run_job('comment.listtbypostid', "1774951384-98fe38df")) # x = 1 # while x <= 20: # post = API.run_job('comment.create', { # "blurLabel": None, # "commentText": f"Making loads of comment #{x}", # "parent": { # "pk": "maintrunk#maintrunk", # "sk": "post#1774951384-98fe38df", # "slug": "1774951384-98fe38df" # }, # "topLevel": { # "pk": "maintrunk#maintrunk", # "sk": "post#1774951384-98fe38df" # }, # "version": 3 # }) # print(post) # x += 1 # save_response(API.run_job('notification.listnotifications')) # save_response(API.run_job('feed.cafefeed')) # save_response(API.run_job('feed.followingfeed')) # save_response(API.run_job('feed.followingfeed', { # 'pk': 'maintrunk#maintrunk', # 'sk': 'post#1774951384-98fe38df' # })) # save_response(API.run_job('post.listall')) # save_response(API.run_job('post.listpublic')) from trustcafeapiwrapper.wrappers.post.create_post import create_post # save_response(create_post( # post_text="This is a test post created via the create_post wrapper function.", # )) # save_response(create_post( # post_text="This is a test post created via the create_post wrapper function.", # parent_path="/branch/music", # )) # from trustcafeapiwrapper.wrappers.reaction import react # save_response(create_post( # "This is a test post created via the create_post wrapper function.", # "/userprofile/simon-little", # )) # wrapped = create_post( # "This is a test post created via the create_post wrapper function without using the `wrapped` method.", # ) # save_response(API.run_job(**wrapped)) # save_response(API.wrapped(create_post( # "This is a test post created via the create_post wrapper function.", # ))) # save_response(API.wrapped(react( # "thumbs_up", # "/", # "/post/1775075313-63ffb852" # ))) # from trustcafeapiwrapper.wrappers.vote import votecast # save_response(API.wrapped(votecast( # "up", # "/", # "/post/1775075313-63ffb852" # ))) # print("-----------Get a list of trusted users for a specific user----------------") # users = API.run_job('trust.listbyuserinit', "simon-little") # print(users) # users = API.run_job('trust.listbyuserhas', "simon-little ") # print(users)