From 6b575da515df8a1ccaf80fa136bbd035ab794d1b Mon Sep 17 00:00:00 2001 From: ingvar1995 Date: Sat, 20 Feb 2016 11:06:24 +0300 Subject: [PATCH] added bootstrap and utils --- src/bootstrap.py | 89 ++++++++++++++++++++++++++++++++++++++++++++++++ src/util.py | 9 +++++ tests/tests.py | 10 ++++++ 3 files changed, 108 insertions(+) create mode 100644 src/bootstrap.py diff --git a/src/bootstrap.py b/src/bootstrap.py new file mode 100644 index 0000000..9701222 --- /dev/null +++ b/src/bootstrap.py @@ -0,0 +1,89 @@ +import util +import random + + +class Node(object): + def __init__(self, ip, port, tox_key, rand): + self._ip, self._port, self._tox_key, self.rand = ip, port, tox_key, rand + + def get_data(self): + # TODO: return tox_key in binary format + return self._ip, self._port, self._tox_key + + +def node_generator(): + nodes = [] + ips = [ + "144.76.60.215", "23.226.230.47", "195.154.119.113", "biribiri.org", + "46.38.239.179", "178.62.250.138", "130.133.110.14", "104.167.101.29", + "205.185.116.116", "198.98.51.198", "80.232.246.79", "108.61.165.198", + "212.71.252.109", "194.249.212.109", "185.25.116.107", "192.99.168.140", + "46.101.197.175", "95.215.46.114", "5.189.176.217", "148.251.23.146", + "104.223.122.15", "78.47.114.252", "d4rk4.ru", "81.4.110.149", + "95.31.20.151", "104.233.104.126", "51.254.84.212", "home.vikingmakt.com.br", + "5.135.59.163", "185.58.206.164", "188.244.38.183", "mrflibble.c4.ee", + "82.211.31.116", "128.199.199.197", "103.230.156.174", "91.121.66.124", + "92.54.84.70", "tox1.privacydragon.me" + ] + ports = [ + 33445, 33445, 33445, 33445, + 33445, 33445, 33445, 33445, + 33445, 33445, 33445, 33445, + 33445, 33445, 33445, 33445, + 443, 33445, 5190, 2306, + 33445, 33445, 1813, 33445, + 33445, 33445, 33445, 33445, + 33445, 33445, 33445, 33445, + 33445, 33445, 33445, 33445, + 33445, 33445 + ] + ids = [ + "04119E835DF3E78BACF0F84235B300546AF8B936F035185E2A8E9E0A67C8924F", + "A09162D68618E742FFBCA1C2C70385E6679604B2D80EA6E84AD0996A1AC8A074", + "E398A69646B8CEACA9F0B84F553726C1C49270558C57DF5F3C368F05A7D71354", + "F404ABAA1C99A9D37D61AB54898F56793E1DEF8BD46B1038B9D822E8460FAB67", + "F5A1A38EFB6BD3C2C8AF8B10D85F0F89E931704D349F1D0720C3C4059AF2440A", + "788236D34978D1D5BD822F0A5BEBD2C53C64CC31CD3149350EE27D4D9A2F9B6B", + "461FA3776EF0FA655F1A05477DF1B3B614F7D6B124F7DB1DD4FE3C08B03B640F", + "5918AC3C06955962A75AD7DF4F80A5D7C34F7DB9E1498D2E0495DE35B3FE8A57", + "A179B09749AC826FF01F37A9613F6B57118AE014D4196A0E1105A98F93A54702", + "1D5A5F2F5D6233058BF0259B09622FB40B482E4FA0931EB8FD3AB8E7BF7DAF6F", + "CF6CECA0A14A31717CC8501DA51BE27742B70746956E6676FF423A529F91ED5D", + "8E7D0B859922EF569298B4D261A8CCB5FEA14FB91ED412A7603A585A25698832", + "C4CEB8C7AC607C6B374E2E782B3C00EA3A63B80D4910B8649CCACDD19F260819", + "3CEE1F054081E7A011234883BC4FC39F661A55B73637A5AC293DDF1251D9432B", + "DA4E4ED4B697F2E9B000EEFE3A34B554ACD3F45F5C96EAEA2516DD7FF9AF7B43", + "6A4D0607A296838434A6A7DDF99F50EF9D60A2C510BBF31FE538A25CB6B4652F", + "CD133B521159541FB1D326DE9850F5E56A6C724B5B8E5EB5CD8D950408E95707", + "5823FB947FF24CF83DDFAC3F3BAA18F96EA2018B16CC08429CB97FA502F40C23", + "2B2137E094F743AC8BD44652C55F41DFACC502F125E99E4FE24D40537489E32F", + "7AED21F94D82B05774F697B209628CD5A9AD17E0C073D9329076A4C28ED28147", + "0FB96EEBFB1650DDB52E70CF773DDFCABE25A95CC3BB50FC251082E4B63EF82A", + "1C5293AEF2114717547B39DA8EA6F1E331E5E358B35F9B6B5F19317911C5F976", + "53737F6D47FA6BD2808F378E339AF45BF86F39B64E79D6D491C53A1D522E7039", + "9E7BD4793FFECA7F32238FA2361040C09025ED3333744483CA6F3039BFF0211E", + "9CA69BB74DE7C056D1CC6B16AB8A0A38725C0349D187D8996766958584D39340", + "EDEE8F2E839A57820DE3DA4156D88350E53D4161447068A3457EE8F59F362414", + "AEC204B9A4501412D5F0BB67D9C81B5DB3EE6ADA64122D32A3E9B093D544327D", + "188E072676404ED833A4E947DC1D223DF8EFEBE5F5258573A236573688FB9761", + "2D320F971EF2CA18004416C2AAE7BA52BF7949DB34EA8E2E21AF67BD367BE211", + "24156472041E5F220D1FA11D9DF32F7AD697D59845701CDD7BE7D1785EB9DB39", + "15A0F9684E2423F9F46CFA5A50B562AE42525580D840CC50E518192BF333EE38", + "FAAB17014F42F7F20949F61E55F66A73C230876812A9737F5F6D2DCE4D9E4207", + "AF97B76392A6474AF2FD269220FDCF4127D86A42EF3A242DF53A40A268A2CD7C", + "B05C8869DBB4EDDD308F43C1A974A20A725A36EACCA123862FDE9945BF9D3E09", + "5C4C7A60183D668E5BD8B3780D1288203E2F1BAE4EEF03278019E21F86174C1D", + "4E3F7D37295664BBD0741B6DBCB6431D6CD77FC4105338C2FC31567BF5C8224A", + "5625A62618CB4FCA70E147A71B29695F38CC65FF0CBD68AD46254585BE564802", + "31910C0497D347FF160D6F3A6C0E317BAFA71E8E03BC4CBB2A185C9D4FB8B31E" + ] + for i in xrange(len(ips)): + nodes.append(Node(ips[i], ports[i], ids[i], random.randint(0, 1000000))) + arr = sorted(nodes, key=lambda x: x.rand)[:4] + for elem in arr: + yield elem.get_data() + + +if __name__ == "__main__": + for elem in node_generator(): + print str(elem) diff --git a/src/util.py b/src/util.py index 1c941d8..6badc6e 100644 --- a/src/util.py +++ b/src/util.py @@ -5,3 +5,12 @@ def log(data): with open("logs.log", "a") as fl: fl.write(str(data)) + +def string_to_bin(tox_id): + return tox_id.decode("hex") + + +def bin_to_string(raw_id): + res = ''.join('{:02x}'.format(ord(x)) for x in raw_id) + return res.upper() + diff --git a/tests/tests.py b/tests/tests.py index 0c2cc24..9583687 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -1,5 +1,6 @@ from src.settings import Settings from src.tox import Tox +from src.util import bin_to_string, string_to_bin import sys from src.profile import Profile import os @@ -56,3 +57,12 @@ class TestProfile(): Profile.save_profile(data) new_data = Profile.open_profile(Settings.get_default_path(), 'tox_save') assert new_data == data + + +class TestUtils(): + + def test_convert(self): + id = 'C4CEB8C7AC607C6B374E2E782B3C00EA3A63B80D4910B8649CCACDD19F260819' + data = string_to_bin(id) + new_id = bin_to_string(data) + assert id == new_id