paint-brush
ব্রাউজার বুকমার্ক থেকে একটি গ্রন্থপঞ্জি জেনারেটর: এটি কীভাবে কাজ করেদ্বারা@bobnoxious
1,302 পড়া
1,302 পড়া

ব্রাউজার বুকমার্ক থেকে একটি গ্রন্থপঞ্জি জেনারেটর: এটি কীভাবে কাজ করে

দ্বারা Bob Wright5m2023/11/27
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

একটি সাধারণ গ্রন্থপঞ্জি জেনারেটর একটি ব্রাউজার বুকমার্ক ফাইলকে এর উৎস বিষয়বস্তু হিসেবে ব্যবহার করে। ডাটাবেস নিজেই আসলে একটি JSON অবজেক্ট ফাইল যা আমরা স্থানীয়ভাবে সংরক্ষণ এবং ব্যবহার করতে পারি। এটি আমাকে ক্রোম এবং এজ এবং ফায়ারফক্সে বুকমার্কের একই সেট পায় উদাহরণস্বরূপ ব্রাউজারটি আমার বুকমার্ক ডেটা সংরক্ষণ না করে। আমরা যে বুকমার্কগুলি ব্যবহার করতে চাই তা বের করতে আমরা বুকমার্ক ফোল্ডার সম্পাদনা করি।
featured image - ব্রাউজার বুকমার্ক থেকে একটি গ্রন্থপঞ্জি জেনারেটর: এটি কীভাবে কাজ করে
Bob Wright HackerNoon profile picture
0-item

একটি সাধারণ গ্রন্থপঞ্জি জেনারেটর যা একটি JSON ব্রাউজার বুকমার্ক ফাইলকে এর উৎস বিষয়বস্তু হিসেবে ব্যবহার করে।

পূর্বশর্ত এবং কোড

গ্রন্থপঞ্জি জেনারেটরের অপারেশনের জন্য প্রথম প্রয়োজনীয়তা হল এর বিষয়বস্তু ডেটার একটি উৎস যা xbrowserSync নামে একটি ব্রাউজার বুকমার্ক ম্যানেজার অ্যাপ্লিকেশন দ্বারা তৈরি একটি JSON অবজেক্ট নিয়ে গঠিত। এই অ্যাপ্লিকেশনটি দুটি অংশে একটি ব্রাউজার-অজ্ঞেয়বাদী বুকমার্ক ম্যানেজার।


একটি অংশ একটি ব্রাউজার এক্সটেনশন, এবং অন্যটি একটি সার্ভার API যা বুকমার্ক ডেটা একটি MongoDB ডেটা ফাইল হিসাবে পরিচালনা করে। সার্ভার API সম্পর্কে আমাদের যা জানতে হবে তা হল এর URL। ব্রাউজার এক্সটেনশনটি Chrome ব্রাউজারের জন্য Google Play-এর মতো অনলাইন অ্যাপ "স্টোরে" পাওয়া যাবে।


মৌলিক ধারণা হল যে xbrowserSync অ্যাপ্লিকেশনটি আপনার বুকমার্ক ডেটা একটি এনক্রিপ্ট করা ডাটাবেসে সংরক্ষণ করে যা API সার্ভারে সংরক্ষিত থাকে। ডাটাবেস নিজেই আসলে একটি JSON অবজেক্ট ফাইল যা আমরা স্থানীয়ভাবে সংরক্ষণ এবং ব্যবহার করতে পারি এবং যেটি আমাদের অ্যাপ্লিকেশন এক্সটেনশন যথাযথভাবে ইনস্টল করা যেকোনো ব্রাউজার দ্বারা ব্যবহার করা যেতে পারে।


এটি আমাকে ক্রোম, এজ এবং ফায়ারফক্সে বুকমার্কের একই সেট পায়, উদাহরণস্বরূপ, ব্রাউজারটি আমার বুকমার্ক ডেটা সংরক্ষণ না করে। xbrowserSync- এর জন্য APP এবং API উত্স প্রতিটি একটি GitHub সংগ্রহস্থলে রয়েছে।


গ্রন্থপঞ্জি জেনারেটরের দ্বিতীয় প্রয়োজনীয়তা হল এর প্রোগ্রাম কোড যা আমার Windows 10 মেশিনে একটি কমান্ড উইন্ডোতে node.js এর অধীনে চলে। এখানে নিম্নলিখিত, handler.js নামের এই সহজ নোড প্রোগ্রামটি।

 #!/usr/bin/env node // --------------------------------- // Simple bibliography file handler Node Server API // --------------------------------- const fs = require('fs') const path = require('path') //const dn = require('./dirname'); var filePath = './bibliotest.json'; //the biblio bookmark file var biblio = ''; var str = ''; var searchValue = 'url:'; // -------------- // read and parse biblio JSON file // ---------------- const jsonReader = () => { return new Promise(resolve => { str = fs.readFile(filePath, (err, fd) => { object = JSON.parse(fd); str = object.children; // strip outer layer biblio = str; // count biblio array elements count = biblio.length; resolve (str); //return str; }) }) } // async function performAsyncFunctions(){ // list of promises to execute sequentially const firstRequest = await jsonReader(); //console.log('\nAll tasks complete.'); console.log('==== function complete ====\n') console.log('count = ', count) var html = '<html><lang = en><head></head><body>'; for (let i = 0; i < count; i++) { html = html + '<h3><i>id'+[i]+':</i>&nbsp;<a href='+biblio[i].url+'>'+biblio[i].title+'</a></h3><p>'+biblio[i].description+'</p>\n'; } html = html + '</body></html>'; console.info(html); const content = html try { const data = fs.writeFileSync('./bibliotest.html', content) //file written successfully } catch (err) { console.error(err) }} // --------------- performAsyncFunctions(); // console.log('biblio = ', object) // ------------------


JSON ফরম্যাট বুকমার্ক ফাইল

xbrowserSync ব্রাউজার এক্সটেনশন মেনু থেকে, আমরা আমাদের বুকমার্কের ডেটার একটি ব্যাকআপ সংরক্ষণ করতে পারি। ব্যাকআপ একটি JSON ফাইল হিসাবে সংরক্ষিত হয়. এখানে আমাদের উদাহরণের জন্য, সমস্ত বুকমার্ক "MuskArticle" নামে একটি বুকমার্ক ফোল্ডারে রয়েছে।


আমরা আমাদের গ্রন্থপঞ্জিতে যে বুকমার্ক ফোল্ডার ব্যবহার করতে চাই তা বের করতে আমরা বুকমার্ক JSON সম্পাদনা করি। এই JSON ফাইলটি এখানে নিচে দেখানো হয়েছে।

 { "title": "__MuskArticle", "children": [ { "title": "Musk's X caught throttling outbound links to websites he doesn't like", "url": "https://www.msn.com/en-us/news/technology/musk-sx-caught-throttling-outbound-links-to-websites-he-doesn-t-like/ar-AA1fmbYw?ocid=windirect&cvid=3ff1100b6fba4172b3b0b8b9c6bbc7e0&ei=185", "description": "Elon Musk claims that he bought Twitter, now called X, to preserve free speech. He claimed that everyone's voice should be heard. This is a great thing for free speech and must surely be a coincidence, right? Elon Musk's X was this week caught throttling outbound links to several sites, coincidentally ones that the billionaire has complained about or feuded with in the past.… Links directing users of the website formerly…", "id": 6643 }, { "title": "Mark Cuban takes another jab at Elon Musk's business practices", "url": "https://www.msn.com/en-us/money/companies/mark-cuban-takes-another-jab-at-elon-musk-s-business-practices/ar-AA1fmrNQ?ocid=windirect&cvid=528ef4be846842fa87342b96d92d0dfa&ei=35", "description": "These two billionaires are not best buds.", "id": 6664 }, { "title": "Twitter now makes you PAY to access one of its most popular features", "url": "https://www.msn.com/en-us/money/technology/twitter-now-makes-you-pay-to-access-one-of-its-most-popular-features/ar-AA1flk5Y?ocid=windirect&cvid=ee4ba03e4c414849a910c7f25dbfd759&ei=27", "description": "X (formerly Twitter) has started diverting users to a paid-subscription sign-up page when they try to access TweetDeck.", "id": 6665 }, { "title": "NYU Professor Locked Out of Twitter After Reportedly Declining to Meet With Elon Musk", "url": "https://www.msn.com/en-us/news/technology/nyu-professor-locked-out-of-twitter-after-reportedly-declining-to-meet-with-elon-musk/ar-AA1fmedB?ocid=windirect&cvid=a7973a74a0d24f2287ea421bbd70f5ea&ei=42", "description": "New York University professor and Kara Swisher's podcasting buddy Scott Galloway voiced his outrage at being banned from posting on Twitter in a Threads post on Tuesday. Galloway claims he's been locked out of Twitter (aka X) two days after allegedly declining an invitation to meet with the chief…", "id": 6666 }, { "title": "A federal judge wondered if Elon Musk was trying to 'cozy up' to Trump by trying to inform him about a search warrant into his social media account", "url": "https://www.msn.com/en-us/news/politics/a-federal-judge-wondered-if-elon-musk-was-trying-to-cozy-up-to-trump-by-trying-to-inform-him-about-a-search-warrant-into-his-social-media-account/ar-AA1flSZV?ocid=windirect&cvid=ee4ba03e4c414849a910c7f25dbfd759&ei=51", "description": "In January, federal prosecutors obtained a search warrant to obtain information from Trump's personal Twitter account.", "id": 6667 } ] }


গ্রন্থপঞ্জি ফাইল

যদি আমরা উপরের JSON ফাইলটি আমাদের node.js হ্যান্ডলার প্রোগ্রামে জমা দিই, তাহলে এটি নিম্নলিখিত HTML বিন্যাস গ্রন্থপঞ্জি তালিকা তৈরি করবে।


উপসংহার

সুতরাং, আমরা দেখেছি কিভাবে আমরা বুকমার্ক ম্যানেজার হিসাবে xbrowserSync ব্যবহার করে আমাদের বুকমার্ক ডেটা থেকে গ্রন্থপঞ্জি তৈরি করতে পারি। পড়ার জন্য ধন্যবাদ, এবং এই তথ্য আপনার জন্য দরকারী আশা করি. বরাবরের মত, মন্তব্য, পরামর্শ, এবং সমালোচনা স্বাগত জানানো হয়.