import requests from time import sleep # Progress-bar from tqdm import tqdm # Work with list-like objects from listwork import * # Easy debug from icecream import ic ic.disable() # Disable debug global server #server = 'http://127.0.0.1:3333' server = 'http://pb.gulyaipole.fun' # fill(0,0, 10,10, [0,0,0]) def fill(x1,y1, x2,y2, color): pxls = [] r = color[0] ; g = color[1] ; b = color[2] for x in range(x1, x2+1): for y in range(y1, y2+1): pxls.append([x, y, r, g, b]) return pxls # draw( fill(...) ) def draw(pxls): global server ic(pxls) push = [] # Push %limit% items limit = 300 while len(pxls) > limit: packs = [] # Merge elements to %limit% size list for i in range(limit): # Take first element packs.append(pxls[0]) pxls.pop(0) push.append({"main": pack(packs)}) push.append({"main": pack(pxls)}) # Pack last ic(push) for i in tqdm(push): response = requests.post(server, i) while not response.status_code == 200: print("Error, retrying...") response = requests.post(server, i) sleep(0.1) # cfill(0,0, 10,10) // Limit - 34x34 def cfill(x1,y1, x2,y2): pxls = [] for x in range(x1, x2+1): for y in range(y1, y2+1): pxls.append([x, y]) packed = pack(pxls) return packed # ccheck( packed([[0,0]]) ) or ccheck(cfill(...)) def ccheck(packed): global server response = requests.get(f'{server}/get_color={packed}') ic(response.text) out = unpack(response.text) return out ### EXAMPLE # Draw random square 100x100 on 0,0 from random import randint as ri draw( fill(0,0, 100,100, [ri(0,255),ri(0,255),ri(0,255)]) ) # Check square 34x34 on 0,0 print(ccheck(cfill(0,0, 34,34))) # Use extras, draw 1/2 random square 100x100 on 0,0 from bot_extras import * draw(pas2( rand(0,0, 100,100) )) # Draw image (flipped (BUG) ) from im_convert import * image = convert("example.png", [10,0]) from remove_back import * draw( optimize(image, [255,255,255]) ) # Remove white background and draw