| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # 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()
|