PythonYXY 9 роки тому
батько
коміт
b0415c1260
1 змінених файлів з 63 додано та 0 видалено
  1. 63 0
      DB/MongodbClient.py

+ 63 - 0
DB/MongodbClient.py

@@ -0,0 +1,63 @@
+# coding: utf-8
+
+__author__ = 'Maps'
+
+from pymongo import MongoClient
+import random
+import json
+
+
+class MongodbClient(object):
+
+	def __init__(self, name, host, port):
+		self.name = name
+		self.client = MongoClient(host, port)
+		self.db = self.client.proxy
+
+
+	def changeTable(self, name):
+		self.name = name
+
+
+	def get(self):
+		proxy = self.getAll()
+		return random.choice(proxy) if proxy else None
+
+
+	def put(self, value):
+		if self.db[self.name].find_one({'proxy': value}):
+			return None
+		else:
+			self.db[self.name].insert({'proxy': value})
+
+
+	def pop(self):
+		value = self.get()
+		if value:
+			self.delete(value)
+		return value
+
+
+	def delete(self, value):
+		self.db[self.name].remove({'proxy': value})
+
+
+	def getAll(self):
+		return [p['proxy'] for p in self.db[self.name].find()]
+
+
+	def clean(self):
+		self.client.drop_database('proxy')
+
+
+	def delete_all(self):
+		self.db[self.name].remove()
+
+
+if __name__ == "__main__":
+	db = MongodbClient('first', 'localhost', 27017)
+	db.put('127.0.0.1:1')
+	db2 = MongodbClient('second', 'localhost', 27017)
+	db2.put('127.0.0.1:2')
+	db.clean()
+