#var baseconfig = {"+auto switch":{"color":"#99dd99","defaultProfileName":"direct","name":"auto switch","profileType":"SwitchProfile","rules":[{"condition":{"conditionType":"HostWildcardCondition","pattern":"internal.example.com"},"profileName":"direct"},{"condition":{"conditionType":"HostWildcardCondition","pattern":"*.example.com"},"profileName":"proxy"}]},"+proxy":{"bypassList":[{"conditionType":"BypassCondition","pattern":"127.0.0.1"},{"conditionType":"BypassCondition","pattern":"::1"},{"conditionType":"BypassCondition","pattern":"localhost"}],"color":"#99ccee","fallbackProxy":{"host":"proxy.example.com","port":8080,"scheme":"http"},"name":"proxy","profileType":"FixedProfile"},"-addConditionsToBottom":false,"-confirmDeletion":true,"-downloadInterval":1440,"-enableQuickSwitch":false,"-quickSwitchProfiles":[],"-refreshOnProfileChange":true,"-revertProxyChanges":true,"-showExternalProfile":true,"-showInspectMenu":true,"-startupProfileName":"","schemaVersion":2,"-monitorWebRequests":true,"+Sentinel - 3129":{"profileType":"FixedProfile","name":"Sentinel - 3129","bypassList":[{"conditionType":"BypassCondition","pattern":"127.0.0.1"},{"conditionType":"BypassCondition","pattern":"[::1]"},{"conditionType":"BypassCondition","pattern":"localhost"},{"conditionType":"BypassCondition","pattern":"192.168.0.150"}],"color":"#9d9","revision":"171d54addb6","fallbackProxy":{"scheme":"http","port":3129,"host":"192.168.0.150"}}} import random import string import os,binascii __location__ = os.path.realpath( os.path.join(os.getcwd(), os.path.dirname(__file__))) #region """ { "xxcdhj1571078117745": { "type": 1, "color": "#001bcc", "title": "Sentinel - Israel", "address": "192.168.0.150", "port": 3139, "proxyDNS": false, "active": true, "username": "", "password": "", "whitePatterns": [], "blackPatterns": [], "pacURL": "", "index": -1 }, "browserVersion": "75.0", "foxyProxyVersion": "7.4.3", "foxyProxyEdition": "standard" } """ #end def generaterandomstring(amount=18): letters = string.ascii_lowercase return ''.join(random.choice(letters) for i in range(amount)) def foxyproxyconfig(port): rd = generaterandomstring(18) hexs = '#{}'.format(binascii.b2a_hex(os.urandom(3)).decode()) ret = '"{}":'.format(rd) ret += '{"type":' ret += '1, "color": "{}"'.format(hexs) ret += ', "title": "Sentinel - {}", "address": "192.168.0.150", "port": {},"proxyDNS": false, "active": true,"username": "","password": "","whitePatterns": [],"blackPatterns": [],"pacURL": "","index": -1'.format(str(port), str(port)) ret += '},' return ret def createconfig(port): foxyconfig = foxyproxyconfig(port) print(foxyconfig) return foxyconfig #out = '{"+auto switch":{"color":"#99dd99","defaultProfileName":"direct","name":"auto switch","profileType":"SwitchProfile","rules":[{"condition":{"conditionType":"HostWildcardCondition","pattern":"internal.example.com"},"profileName":"direct"},{"condition":{"conditionType":"HostWildcardCondition","pattern":"*.example.com"},"profileName":"proxy"}]},"+proxy":{"bypassList":[{"conditionType":"BypassCondition","pattern":"127.0.0.1"},{"conditionType":"BypassCondition","pattern":"::1"},{"conditionType":"BypassCondition","pattern":"localhost"}],"color":"#99ccee","fallbackProxy":{"host":"proxy.example.com","port":8080,"scheme":"http"},"name":"proxy","profileType":"FixedProfile"},"-addConditionsToBottom":false,"-confirmDeletion":true,"-downloadInterval":1440,"-enableQuickSwitch":false,"-quickSwitchProfiles":[],"-refreshOnProfileChange":true,"-revertProxyChanges":true,"-showExternalProfile":true,"-showInspectMenu":true,"-startupProfileName":"","schemaVersion":2,"-monitorWebRequests":true,"+Sentinel - {}":{"profileType":"FixedProfile","name":"Sentinel - {}","bypassList":[{"conditionType":"BypassCondition","pattern":"127.0.0.1"},{"conditionType":"BypassCondition","pattern":"[::1]"},{"conditionType":"BypassCondition","pattern":"localhost"},{"conditionType":"BypassCondition","pattern":"192.168.0.150"}],"color":"#9d9","revision":"171d54addb6","fallbackProxy":{"scheme":"http","port":{},"host":"192.168.0.150"}}}'.format(port, port, port) def foxycreateconfig(start, end): #first remove output file os.remove(os.path.join(__location__, 'output.json')) print('path: {}'.format(os.path.join(__location__, 'output.json'))) file = open(os.path.join(__location__, 'output.json'), "w+") file.write("{") for x in range(start, end): rt = createconfig(x) file.write(rt) file.write('"browserVersion": "75.0", "foxyProxyVersion": "7.4.3", "foxyProxyEdition": "standard"}') file.close() def createconfigs(start, end): for x in range(start, end): createconfig(x) #createconfig(10) #foxyproxyconfig(3129) foxycreateconfig(3129, 3180)