Google रीडर की समापन तिथि जितनी अधिक होगी, उतना ही जरूरी है कि सदस्यता को न केवल एक समान सेवा में स्थानांतरित किया जाए, बल्कि कई अन्य रिकॉर्ड भी सहेजे जाएं।
हब (
यहां और
यहां ) सहित उन समाधानों को मुख्य रूप से दो कारणों से फिट नहीं किया गया: डेटाबेस को बचाने और धीमी गति का कोई तरीका नहीं है। मुझे अपनी बाइक -
ग्रैचअप को असेंबल करना था, जो कि
grbackup -e fake@gmail.com -p password -ba -o mongodb://localhost:27017 -w 20
20 मिनट में स्थानीय मानगोडीबी डेटाबेस में
102 सदस्यता से
328250 रिकॉर्ड बचाए।
मुख्य विशेषताएं:
- Google रीडर API का उपयोग करके प्राप्त किए जा सकने वाले सभी रिकॉर्ड को सहेजना
- विभिन्न रिपॉजिटरी में रिकॉर्ड की बचत
- Google रीडर एपीआई के माध्यम से जो देता है, उसके समान प्रारूप का उपयोग करना
- समानांतर प्राप्त / बचत रिकॉर्ड
- एक्स्टेंसिबिलिटी: एक नए तरह के स्टोरेज को जोड़ने की क्षमता
उपलब्ध प्रकार के स्टोरेज एक्सटेंशन (प्लगइन्स) द्वारा निर्धारित किए जाते हैं और प्रकार के (
-o, --output ) विकल्प का उपयोग करके सेट किए जाते हैं
: uri प्रकार ।
लेखन के समय, निम्नलिखित एक्सटेंशन उपलब्ध हैं:
- सरल : टर्मिनल के लिए आउटपुट (केवल दृश्य मोड में उपयोग किया जाता है)
- json : json file को लिखें ( json: /path/to/file.json )
- mongodb : MongoDB ( mongodb: // [username: password @] hostN [: portN]]] [/ [db] [? opts]] को लिखें।
- रेडिस : रेडिस को लिखें ( redis: // उपयोगकर्ता नाम: पासवर्ड @ होस्ट [: port] / dbindex )
उबंटू (64) और विन 7 (64) पर परीक्षण किया गया।
सुझावों और टिप्पणियों की एक पुस्तक
यहां पाई जा सकती
है ।
नीचे उपयोगिता का विस्तृत वर्णन है।
स्थापना
pip install grbackup
या
easy_install grbackup
या
pip install git+git://github.com/wistful/grbackup.git
कमांड लाइन विकल्प
प्राधिकरण
- -e, --email : ईमेल पता जिसका उपयोग Google रीडर में लॉग इन करने के लिए किया जाता है
- -p, --पासवर्ड : पासवर्ड
grbackup दो कार्यों का समर्थन करता है:
- ब्राउज़ करें : -l, --सूची
- save : -b, --backup
एक कार्रवाई चार डेटा प्रकारों में से एक पर की जा सकती है:
- भेंट; -s, - सदस्यताएँ
- प्रविष्टियाँ : -t, --topics
- टैग की गई प्रविष्टियाँ : -x, --starred
- सभी पिछले संयुक्त : -a, --all
अतिरिक्त विकल्प:
- -w, --वर्कर्स : एक साथ संसाधित सदस्यता की अधिकतम संख्या (डिफ़ॉल्ट 1)
- -o, --आउटपुट : यूआरआई दर्शाता है कि प्रविष्टियों को कहाँ सहेजना है
- -n, -count : Google रीडर से प्रति अनुरोध (डिफ़ॉल्ट 200) प्राप्त रिकॉर्ड की संख्या। बहुत से परिणाम डेटा के छोटे हिस्से (ओह, इस Google) में हो सकते हैं।
सभी विकल्प, साथ ही प्लगइन्स का वर्णन,
-h, --help विकल्प का उपयोग करके देखा जा सकता है:
grbackup -h
पिछले आदेश का उत्पादन Usage: grbackup [options] [args] Examples: list subscriptions: grbackup -e email@gmail.com -p password -ls list topics: grbackup -e email@gmail.com -p password -lt http://feed.com list starred: grbackup -e email@gmail.com -p password -lx list all items: grbackup -e email@gmail.com -p password -la backup subscriptions: grbackup -e email@gmail.com -p password -bs -o json:/tmp/subscriptions.json backup topics: grbackup -e email@gmail.com -p password -bt http://myfeed.com -o json:/tmp/myfeed.json backup starred into MongoDB: grbackup -e email@gmail.com -p password -bx -o mongodb://localhost:27017 backup all items into Redis: grbackup -e email@gmail.com -p password -ba -o redis://localhost:6379/3 Available plugins: mongodb: save items into MongoDB output scheme: mongodb://[username:password@]hostN[:portN]]][/[db][?opts]] output examples: mongodb://localhost:27017 mongodb://user:pwd@localhost,localhost:27018/?replicaSet=grbackup json: save items into file output scheme: json:/path/to/file.json output examples: json:/home/grbackup/grbackup.json json:/tmp/grbackup/grbackup.json redis: save items into Redis output scheme: redis://username:password@host[:port]/dbindex output examples: redis://localhost:6379/3 redis://user:password@localhost:6379/0 Options: Auth Options: -e EMAIL, --email=EMAIL gmail account -p PWD, --password=PWD account password Command Options: -b, --backup backup items -l, --list list items Scope Options: -a, --all processing all items -s, --subscriptions processing subscriptions only -t, --topics processing topics only -x, --starred processing starred topics only MongoDB Options: --mongodb-db=MONGODB_DB the name of the database[default: greader] --mongodb-scol=MONGODB_SUBSCRIPTIONS collection name for subscriptions[default: subscriptions] --mongodb-tcol=MONGODB_TOPICS collection name for topics[default: topics] --mongodb-tstar=MONGODB_STARRED collection name for starred items[default: starred] --mongodb-w=MONGODB_W <int> Write operations will block until they have been replicated to the specified number [default: 1] --mongodb-j block until write operations have been committed to the journal [default: False] Redis Options: --redis-scol-prefix=REDIS_SUBS subscriptions key prefix[default: subscription] --redis-tcol-prefix=REDIS_TOPICS topics key prefix[default: topic] --redis-xcol-prefix=REDIS_STARRED starred key prefix[default: starred] Other Options: -w WORKERS, --workers=WORKERS number of workers [default: 1] -o OUTPUT, --output=OUTPUT output uri -n COUNT, --count=COUNT the number of topics that can be read at once [default: 200] -c CODING, --coding=CODING output coding [default: utf8] -v, --verbose verbose output -h, --help
के उपयोग
सदस्यता की सूची:
grbackup -e email@gmail.com -p password -ls
विशिष्ट सदस्यता के लिए प्रविष्टियों की सूची:
grbackup -e email@gmail.com -p password -lt http://habrahabr.ru/rss/hub/python/
सभी चिह्नित प्रविष्टियों की सूची:
grbackup -e email@gmail.com -p password -lx
सभी प्रविष्टियों की सूची:
grbackup -e email@gmail.com -p password -la
फ़ाइल को सदस्यता के लिए बचत:
grbackup -e email@gmail.com -p password -bs -o json:/tmp/subscriptions.json
किसी विशिष्ट सदस्यता के सभी रिकॉर्ड्स को एक जोंस फाइल में सहेजना:
grbackup -e email@gmail.com -p password -bt http://habrahabr.ru/rss/hub/python/ -o json:/tmp/python.json
MongoDB में सभी चिह्नित प्रविष्टियों को सहेजना:
grbackup -e email@gmail.com -p password -bx -o mongodb://localhost:27017
20 धागे का उपयोग करते हुए रेडिस में सभी रिकॉर्ड की बचत:
grbackup -e email@gmail.com -p password -ba -o redis://localhost:6379/3 -w 20
प्लग-इन
JSON
सामान्य यूआरआई प्रारूप:
json: /path/to/file.jsonबहुपरत समर्थन: हाँ
उपयोग उदाहरण:
grbackup -e email@gmail.com -p password -ba -o json:/home/grbackup/grbackup.json
वस्तुओं की सूची के रूप में प्रविष्टियाँ एक अलग फ़ाइल में सहेजी जाती हैं।
तीन प्रकार की वस्तुएँ हैं:
- सदस्यताएँ : {"प्रकार": "सदस्यता", "मूल्य": सदस्यता}
- चिह्नित प्रविष्टियाँ : {"प्रकार": "तारांकित", "मूल्य": रिकॉर्ड}
- नियमित रिकॉर्ड : {"प्रकार": "विषय", "सदस्यता": सदस्यता_सुविधा, "मूल्य": रिकॉर्ड}
MongoDB
सामान्य URI प्रारूप:
mongodb: // [उपयोगकर्ता नाम: पासवर्ड @] hostN [: portN]]] [/ [db] [! Opts]?बहुपरत समर्थन: हाँ
उपयोग उदाहरण:
grbackup -e email@gmail.com -p password -ba -o mongodb://localhost:27017 -w 20
प्रविष्टियाँ तीन संग्रह में रखी गई हैं:
सदस्यता ,
विषय ,
तारांकित ।
संग्रह के नाम बदले जा सकते हैं।
Redis
सामान्य URI प्रारूप:
redis: // उपयोगकर्ता नाम: पासवर्ड @ होस्ट [: port] / dbindexबहुपरत समर्थन: हाँ
उपयोग उदाहरण:
grbackup -e email@gmail.com -p password -ba -o redis://user:password@localhost:6379/0 -w 20
रिकॉर्ड के भंडारण के लिए
हैश डेटा प्रकार का
उपयोग किया जाता है ।
कुंजियाँ तीन प्रकार की हो सकती हैं:
"सदस्यता: record_id" ,
"तारांकित: record_id" ,
"विषय: record_id" , जहाँ
record_id रिकॉर्ड के लिए एक विशिष्ट पहचानकर्ता है।
प्रमुख उपसर्गों को बदला जा सकता है।
खुद का प्लगइन
मॉड्यूल को grb_plugins पैकेज में होना चाहिए, मॉड्यूल का नाम मायने नहीं रखता।
मॉड्यूल संरचना:
- plugin_type - string type, जिसमें plugin का नाम है
- support_threads - बूलियन प्रकार, कई थ्रेड्स का उपयोग करने की संभावना को इंगित करता है
- विवरण - स्ट्रिंग प्रकार, प्लगइन का विवरण शामिल है
- add_option_group - अतिरिक्त कमांड लाइन विकल्प जोड़ने वाला फ़ंक्शन
- लेखक - एक संदर्भ प्रबंधक के तरीके के साथ एक वस्तु लौटने:
- put_subscription (सदस्यता) - एक सदस्यता, सदस्यता बचाते समय कहा जाता है - एक शब्दकोश
- put_starred (विषय) - एक चिह्नित रिकॉर्ड सहेजे जाने पर बुलाया जाता है, विषय - शब्दकोश
- put_topic (स्वयं, subscribe_url, विषय) - जब एक रिकॉर्ड सहेजा जाता है (विकल्प -t ',' --topics '),
विषय - शब्दकोश, membership_url - सदस्यता स्ट्रिंग पता - put_all (सदस्यता, विषय) - विकल्प '-a', '--all' विकल्प का उपयोग करते हुए रिकॉर्ड सहेजते समय,
सदस्यता और विषय - शब्दकोश
फ़ाइल में रिकॉर्ड सहेजने के लिए लॉगिंग का उपयोग करके उदाहरण प्लगइन