প্রকল্প সম্পর্কে
ticktick-py-v2 হল TickTick-এর অনানুষ্ঠানিক `api/v2` এন্ডপয়েন্টের জন্য একটি Python wrapper, যা ওয়েব অ্যাপ এবং ডেস্কটপ ক্লায়েন্ট দ্বারা ব্যবহৃত অভ্যন্তরীণ ইন্টারফেস। লেখক এটিকে TickTick-এর অফিসিয়াল OAuth API-এর একটি বিকল্প হিসেবে উপস্থাপন করেছেন, যা টাস্ক এবং প্রজেক্ট কভার করে কিন্তু অভ্যাসগুলিকে শুধুমাত্র পড়া-only এক্সপোজ করে এবং ফোকাস/পমডোরো এন্ডপয়েন্ট নেই।
README অনুযায়ী, লাইব্রেরি যা এক্সপোজ করে:
- টাস্ক এবং প্রজেক্ট: সক্রিয় টাস্ক এবং প্রজেক্ট তালিকা পড়ুন, টাস্ক তৈরি করুন, টাস্ক সম্পূর্ণ করুন, এবং প্রজেক্ট নামগুলির মতো প্রজেক্ট বৈশিষ্ট্যগুলির সাথে টাস্ক অবজেক্টগুলিকে সমৃদ্ধ করুন।
- অভ্যাস: চেক-ইন পড়ুন (যেমন, একটি নির্দিষ্ট তারিখ স্ট্যাম্পের পরে) এবং চেক-ইন পোস্ট করুন, যা README-তে অন্য ডেটা সোর্স থেকে অভ্যাস ইতিহাস ব্যাকফিল করার উপায় হিসেবে প্রস্তাবিত হয়েছে।
- ফোকাস/পমডোরো: একটি দিন অফসেটের উপর ফোকাস সেশন পড়ুন, একটি সেশন বর্তমানে চলছে কিনা তা পরীক্ষা করুন, এবং ঐতিহাসিক সেশনগুলির জন্য ফোকাস রেকর্ড যোগ করুন (শুরু/শেষ টাইমস্ট্যাম্প)।
- ক্যালেন্ডার ইভেন্ট: সমস্ত ইভেন্ট পুনরুদ্ধার করুন।
README থেকে ডিজাইন নোট:
- APIটি স্টেটফুল ক্লায়েন্ট ক্লাসের পরিবর্তে সাধারণ ফাংশন হিসেবে এক্সপোজ করা হয়েছে; প্রতিটি কল একটি ঐচ্ছিক `headers` যুক্তি গ্রহণ করে, তাই auth headers একবার `get_authenticated_ticktick_headers()` এর মাধ্যমে আনা যেতে পারে এবং পুনরায় ব্যবহার করা যেতে পারে, অথবা প্রতি কলে তাজা আনা যেতে পারে (লগইন ডিস্কে ক্যাশ করা হলে সস্তা)।
- প্রমাণীকরণ OAuth-এর পরিবর্তে স্বাভাবিক লগইন সেশন (কুকি) ব্যবহার করে। `TICKTICK_EMAIL` এবং `TICKTICK_PASSWORD` এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে শংসাপত্র সরবরাহ করা যেতে পারে, একটি হেডলেস Selenium সেশন লগইন পরিচালনা করে এবং কুকি ক্যাশ করে; অথবা কুকি ম্যানুয়ালি `.ticktick-cookies.json` ফাইলে এক্সপোর্ট করা যেতে পারে।
- রিটার্ন মানগুলি হল pydantic `BaseModel` ইনস্ট্যান্স, যা `.model_dump()` বা `.model_dump(by_alias=True)` এর সাথে TickTick-এর নেটিভ camelCase ফিল্ড নামের জন্য রূপান্তরযোগ্য।
ইনস্টলেশন `pip install ticktick-py-v2` এর মাধ্যমে হয়; অন্তর্ভুক্ত `tests/` ডিরেক্টরির বিরুদ্ধে pytest দিয়ে পরীক্ষা চালানো হয়। রিপোজিটরিটি `cookies_login.py`, `events.py`, `focus.py`, `habits.py`, `tasks.py`, প্লাস `utils/` এবং `web/` অভ্যন্তরীণ অংশগুলিতে সংগঠিত।
README-তে মূল ট্রেড-অফ সম্পর্কে স্পষ্ট বলা হয়েছে: এটি একটি অনানুষ্ঠানিক, রিভার্স-ইঞ্জিনিয়ারড API যা একটি ব্যবহারকারীর লগইন সেশনের মাধ্যমে প্রমাণীকরণ করে এবং যদি TickTick তার অভ্যন্তরীণ এন্ডপয়েন্ট পরিবর্তন করে তবে তা ভেঙে যেতে পারে। অবদান বিভাগ পুনরাবৃত্ত-টাস্ক এজ কেস, সাবটাস্ক এবং রিমাইন্ডারগুলির মতো অ-কভারড এন্ডপয়েন্টগুলির জন্য ইস্যু এবং পুল রিকোয়েস্ট আমন্ত্রণ জানায়, এবং একটি এন্ডপয়েন্ট পরিবর্তন হলে ব্যর্থ অনুরোধ/প্রতিক্রিয়া বিশদ চায়। Apache 2.0 লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.