GitHub Star Warehouse Note Assistente

Hai dimenticato lo scopo dei repository a stelle? Questo è uno script che può aggiungere note ai tuoi repository preferiti e le informazioni che commenti possono essere caricate e scaricate su Github Gist

// ==UserScript==
// @name              GitHub RepoNotesHelper
// @name:af           GitHub Star Warehouse Notes Assistent
// @name:am           የጊትሮ ኮከብ መጋዘን ማስታወሻዎች ረዳት
// @name:ar           Github Star Warehouse Notes Assistant
// @name:az           Github Star Anbar Qeydləri köməkçisi
// @name:be           Склад Github Star Warehouse Нататкі Памочнік
// @name:bem          Ifilembo fya Ntanda ifya GitHub Ifya Kusunga Ifya GitHub
// @name:bg           Github Star Warehouse бележки Асистент
// @name:bn           গিটহাব তারকা গুদাম নোট সহকারী
// @name:bo           གྷི་ཊི་ཧབ་སྐར་མའི་མཛོད་ཁང་གི་དྲན་ཐོ་ལས་རོགས་པ།
// @name:bs           Pomoćnik za magacinske bilješke GitHub Star
// @name:ca           Github Star Warehouse Notes Assistent
// @name:ceb          Github Star Warehouse Notes Assistant
// @name:ckb          یاریدەدەری کۆگای ئەستێرەکانی GitHub
// @name:cs           Poznámka Github Star Warehouse Asistent
// @name:cy           Cynorthwyydd Nodiadau Warehouse Seren GitHub
// @name:da           GitHub Star Warehouse Notes Assistant
// @name:de           Github Star Warehouse Note Assistent
// @name:dv           ގިތަބް ސްޓާ ވެއަރހައުސް ނޯޓްސް އެސިސްޓެންޓް
// @name:dz           GitHub སྐར་མའི་དམག་ཁང་གི་དྲན་ཐོ།
// @name:el           Ο Βοηθός Βοηθός Σημειών του Github Star Warehouse
// @name:en           GitHub Star Warehouse Notes Assistant
// @name:en-GB        GitHub Star Warehouse Notes Assistant
// @name:eo           Github Star Warehouse Notes Assistant
// @name:es           Asistente de notas de almacén de estrellas de Github
// @name:et           GitHub Star Warehouse Notes Assistent
// @name:eu           GitHub Star Warehouse Notes Laguntzailea
// @name:fa           GitHub Star Warehouse Notes دستیار
// @name:fi           Github Star Warehouse Notes Assistant
// @name:fo           GitHub Stjørnugoymsla Notur Assistant
// @name:fr           Assistant de notes d’entrepôt Github Star
// @name:gd           Neach-taic Notaichean Star Github
// @name:gl           GitHub Star Warehouse Notes Asistente
// @name:gu           ગિટહબ સ્ટાર વેરહાઉસ નોંધો સહાયક
// @name:haw          ʻO GitHitub Star Warehouse i nā mea kōkua
// @name:he           מחסן כוכב Github עוזר הערות
// @name:hi           GitHub स्टार वेयरहाउस नोट सहायक
// @name:hr           GitHub Star Warehouse Notes pomoćnik
// @name:ht           GitHub Star Depo Nòt Asistan
// @name:hu           Github Star Warehouse Notes asszisztens
// @name:hy           Gitub Star պահեստի գրառումների օգնական
// @name:id           Asisten Catatan Gudang Bintang GitHub
// @name:is           Github Star Warehouse Notes Assistant
// @name:it           GitHub Star Warehouse Note Assistente
// @name:ja           Github Star Warehouseノートアシスタント
// @name:ka           Github Star Warehouse შენიშვნები ასისტენტი
// @name:kk           Github star қоймасы
// @name:km           ជំនួយការផ្កាយ Github ជំនួយការ
// @name:kn           ಗಿಟ್‌ಹಬ್ ಸ್ಟಾರ್ ವೇರ್‌ಹೌಸ್ ಟಿಪ್ಪಣಿಗಳ ಸಹಾಯಕ
// @name:ko           Github Star Warehouse Notes Assistant
// @name:ku           Gitub Star Warehouse Alîkar
// @name:ky           Github Star Warehouse нота жардамчысы
// @name:la           GitHub Star CELLA Notes
// @name:lb           Github Star Warehouse Notize Assistent
// @name:lo           ຜູ້ຊ່ວຍ Warehouse Star Warehouse Star Weeke
// @name:lt           „GitHub Star Warehouse Notes“ asistentas
// @name:lv           Github Star Warehouse Notes Assistant
// @name:mg           Github Star Warehouse Noroteranan
// @name:mi           Ko te toa Github Star Warehouse he kaiawhina
// @name:mk           Асистент за магацин со starвездички starвезди
// @name:ml           GitHub സ്റ്റാർ വെയർഹ house സ് കുറിപ്പുകൾ അസിസ്റ്റന്റ്
// @name:mn           GitHub Star Warehouse ТАЙЛБАРЫН ТАЙЛБАР
// @name:ms           Pembantu Nota Warehouse Star Github
// @name:mt           Assistent ta ’Noti ta’ Star Warehouse GitHub Star
// @name:my           GitHub Star Warehouse Notes လက်ထောက်
// @name:ne           Githuub स्टार गोदाम नोटहरू
// @name:nl           GitHub Star Warehouse Notes Assistent
// @name:no           Github Star Warehouse Notes Assistant
// @name:ny           Githib Star Warehouse Insuer
// @name:pa           ਗਿਥੂਬ ਸਟਾਰ ਵੇਅਰਹਾ house ਸ ਨੋਟਸ ਸਹਾਇਕ
// @name:pap          Asistente di Notanan di Magazijn di Strea di GitHub
// @name:pl           Github Star Warehouse Notes Asystent
// @name:ps           د ګیتوب سټار ګودام یادښتونه معاون
// @name:pt           Assistente de Notas de Armazém do Github Star
// @name:ro           Github Star Warehouse Notes Assistant
// @name:ru           Звездный склад GitHub
// @name:rw           GitHub Star Ububiko bwumufasha
// @name:sg           GitHub ti dépôt ti atongoro ti mungo maboko .
// @name:si           GitHUB ස්ටාර් ගබඩාව සහකාර
// @name:sk           Github Star Warehouse Poznámky asistent
// @name:sl           Github Star Warehouse opombe pomočnik
// @name:sm           GitHub Star Warehouse Enternent Fesoasoani
// @name:sn           GitHub Star Warehouse Zvinyorwa Mubatsiri
// @name:so           Githeub Star Warehouse Ogeysiiska Qofka
// @name:sr           ГитХуб Стар Варехоусе Нотес Ассистант
// @name:sv           Github Star Warehouse Notes Assistant
// @name:sw           GitHub Star Ghala la Msaidizi
// @name:ta           கிட்ஹப் ஸ்டார் கிடங்கு குறிப்புகள் உதவியாளர்
// @name:te           గితుబ్ స్టార్ గిడ్డంగి నోట్స్ అసిస్టెంట్
// @name:tg           Ё ситораҳои Star Star Star
// @name:th           GitHub Star Warehouse Notes Assistant
// @name:ti           Github Star Warehouse Notes Assistant
// @name:tk           Gitub ýyldyz ammary kepillendirilýär
// @name:tn           Dinoutu tsa Bobolokelo jwa Dinaledi tsa GitHub
// @name:to           Ngaahi Fakatokanga ’a e Falekoloa ’o e GitHub Star
// @name:tpi          GitHub Sta Weahaus Not Asisten
// @name:tr           Github Yıldız Depo Notları Asistanı
// @name:uk           Зоряний склад Github Assistant Assistant
// @name:ur           گٹ ہب اسٹار گودام نوٹس اسسٹنٹ
// @name:uz           Github yulduz omborxonasi yordamchi
// @name:vi           Github Star Warehouse Ghi chú Trợ lý
// @name:xh           I-Gingab Star Warehouse Proceuntant
// @name:yi           גיטהוב שטערן וואַרעהאָוסע נאָטעס אַסיסטאַנט
// @name:zh           GitHub 星标仓库备注助手
// @name:zh-CN        GitHub 星标仓库备注助手
// @name:zh-HK        GitHub 星標倉庫備註助手
// @name:zh-MO        GitHub 星標倉庫備註助手
// @name:zh-MY        GitHub 星标仓库备注助手
// @name:zh-SG        GitHub 星标仓库备注助手
// @name:zh-TW        GitHub 星標倉庫備註助手
// @name:zu           Amanothi we-GitHub Star Warehouse Amanothi
// @description       Have you forgotten what the repository you starred is for? This is a script that can add notes to the repository you starred, and your notes can be uploaded and downloaded to GitHub Gist
// @description:af    Het u die doel van Star -bewaarplekke vergeet? Dit is ’n skrif wat aantekeninge by u gunsteling bewaarplekke kan voeg, en die inligting wat u kommentaar lewer, kan opgelaai en afgelaai word na GitHub Gist
// @description:am    የ Star Satnories ዓላማን ረሱ? ይህ ለተወዳጅ ማከማቻዎችዎ ማስታወሻዎችን ማከል የሚችል ጽሑፍ ነው, እና አስተያየቶች የሚሰጡት መረጃዎች ሊሰቀሉት እና ወደ Gitubub GIM ማውረድ ይችላሉ
// @description:ar    هل نسيت الغرض من مستودعات النجوم؟ هذا البرنامج النصي الذي يمكنه إضافة ملاحظات إلى مستودعاتك المفضلة ، ويمكن تحميل المعلومات التي تعلقها وتنزيلها إلى Github gist
// @description:az    Ulduz depoların məqsədini unutmusunuz? Bu, sevdiyiniz depolar üçün qeydlər əlavə edə bilən bir skriptdir və şərhləriniz yüklənə və Github Gist-ə yüklənə bilər
// @description:be    Вы забыліся на мэты зорных сховішчаў? Гэта сцэнар, які можа дадаць нататкі да вашых любімых сховішча
// @description:bem   Bushe mwalilubile umulandu wa fya kupangapanga ifya Star? Ici citabo kuti calundako ifyalembwa ku fifulo ifyo mwatemwa, kabili amashiwi ayo mulelanda kuti yabikwa no kukopololwa ku Nkondo ya GitHub .
// @description:bg    Забравили ли сте целта на звездни хранилища? Това е скрипт, който може да добави бележки към любимите ви хранилища, а информацията, която коментарите, може да бъде качена и изтеглена в Github Gist
// @description:bn    আপনি কি স্টার সংগ্রহস্থলের উদ্দেশ্য ভুলে গেছেন? এটি এমন একটি স্ক্রিপ্ট যা আপনার প্রিয় সংগ্রহস্থলগুলিতে নোট যুক্ত করতে পারে এবং আপনার মন্তব্যগুলি যে তথ্যগুলি আপলোড করা যায় এবং গিটহাব গিস্টে ডাউনলোড করা যায়
// @description:bo    ཁྱེད་རང་གིས་སྐར་མའི་མཛོད་ཁང་གི་དམིགས་ཡུལ་བརྗེད་སོང་ངམ། འདི་ནི་ཁྱེད་རང་གི་དགའ་མོས་ཆེ་ཤོས་ཀྱི་མཛོད་ཁང་ལ་དྲན་ཐོ་ཁ་སྣོན་བྱེད་ཐུབ་པའི་ཡིག་ཆ་ཞིག་ཡིན།
// @description:bs    Jeste li zaboravili svrhu Star Repositories? Ovo je skripta koja može dodati bilješke u vašim omiljenim spremištima, a informacije koje komentarišete možete prenijeti i preuzeti na GitHub Gist
// @description:ca    Heu oblidat el propòsit dels dipòsits estrella? Es tracta d’un script que pot afegir notes als vostres dipòsits preferits i la informació que comenteu es pot penjar i descarregar a Github Gist
// @description:ceb   Nalimot ka ba sa katuyoan sa mga repositoryo sa bituon? Kini usa ka script nga mahimong makadugang mga nota sa imong pinangga nga mga repositories, ug ang kasayuran nga imong mga komentaryo mahimong ma-upload ug ma-download sa Github GICT
// @description:ckb   ئایا ئامانجی کۆگاکانی ئەستێرەت لەبیر کردووە؟ ئەمە سکریپتێکە کە دەتوانێت تێبینی زیاد بکات بۆ کۆگا دڵخوازەکانت، و ئەو زانیاریانەی کە تۆ کۆمێنتەکان دەتوانن باربکرێن و دابەزێنرێن بۆ GitHub Gist
// @description:cs    Zapomněli jste na účel hvězdných repozitářů? Jedná se o skript, který může přidat poznámky do vašich oblíbených repozitářů a informace, které komentáře můžete nahrávat a stahovat do Github Gist
// @description:cy    Ydych chi wedi anghofio pwrpas ystorfeydd seren? Mae hon yn sgript a all ychwanegu nodiadau at eich hoff gadwrfeydd, a gellir uwchlwytho a lawrlwytho’r wybodaeth rydych chi’n ei gwneud sylwadau i GitHub Gist
// @description:da    Har du glemt formålet med Star Repositories? Dette er et script, der kan tilføje noter til dine yndlingsopbevaringssteder, og de oplysninger, du kommentarer kan uploades og downloades til GitHub Gist
// @description:de    Haben Sie den Zweck von Sternrepositories vergessen? Dies ist ein Skript, das Ihren bevorzugten Repositorys Notizen hinzufügen kann, und die Informationen, die Sie Kommentare erhalten
// @description:dv    ސްޓާ ރިޕޮޒިޓޯރީސްގެ ބޭނުމުގައި ހަނދާން ނެތިއްޖެ ހެއްޔެވެ؟ މިއީ ތިމާ އެންމެ ގަޔާވާ ރިޕޮޒިޓޯރީތަކަށް ނޯޓްތައް އިތުރުކުރެވޭނެ ސްކްރިޕްޓެއް ކަމަށާއި، ތިބާ ކޮމެންޓްކުރާ މައުލޫމާތުތައް އަޕްލޯޑްކޮށް ގިޓްހަބް ޖިސްޓް އަށް ޑައުންލޯޑް ކުރެވޭނެ ސްކްރިޕްޓެއް
// @description:dz    ཁྱོད་ཀྱིས་ སྐར་མའི་མཛོད་ཁང་ཚུ་གི་ དམིགས་ཡུལ་འདི་ བརྗེད་སོངཔ་ཨིན་ན? འདི་ཁྱོད་རའི་དགའ་མཐུན་གྱི་མཛོད་ཁང་ཚུ་ལུ་དྲན་འཛིན་ཁ་སྐོང་བརྐྱབ་ཚུགས་པའི་ཡིག་གཟུགས་ཅིག་ཨིནམ་དང་ ཁྱོད་ཀྱིས་བསམ་བརྗོད་བཀོད་མི་བརྡ་དོན་ཚུ་ སྐྱེལ་བཙུགས་འབད་དེ་ གིཊི་ཧབ་གིསཊི་ལུ་ཕབ་ལེན་འབད་ཚུགས།
// @description:el    Έχετε ξεχάσει τον σκοπό των αποθετηρίων Star; Αυτό είναι ένα σενάριο που μπορεί να προσθέσει σημειώσεις στα αγαπημένα σας αποθετήρια και οι πληροφορίες που σχόλια μπορούν να μεταφορτωθούν και να μεταφορτωθούν στο Github Gist
// @description:en    Have you forgotten the purpose of Star repositories? This is a script that can add notes to your favorite repositories, and the information you comments can be uploaded and downloaded to GitHub Gist
// @description:en-GB Have you forgotten the purpose of Star repositories? This is a script that can add notes to your favorite repositories, and the information you comments can be uploaded and downloaded to GitHub Gist
// @description:eo    Ĉu vi forgesis la celon de stelaj deponejoj? Ĉi tio estas skripto, kiu povas aldoni notojn al viaj plej ŝatataj deponejoj, kaj la informoj, kiujn vi komentas, povas esti alŝutitaj kaj elŝutitaj al GitHub Gist
// @description:es    ¿Has olvidado el propósito de los repositorios de las estrellas? Este es un script que puede agregar notas a sus repositorios favoritos, y la información que comenta se puede cargar y descargar a GitHub Gist
// @description:et    Kas olete unustanud tähehoidlate eesmärgi? See on skript, mis saab teie lemmikhoidlatele märkmeid lisada ning teie kommentaare teabe saab üles laadida ja alla laadida GitHub GIST -i
// @description:eu    Aldatu al duzu izar biltegien xedea? Zure gogoko biltegietan oharrak gehitu ditzakeen gidoia da, eta iruzkinak Github Gist-era igo eta deskargatu ditzakezu
// @description:fa    آیا هدف مخازن ستاره را فراموش کرده اید؟ این یک اسکریپت است که می تواند یادداشت هایی را به مخازن مورد علاقه شما اضافه کند ، و اطلاعاتی که می توانید در مورد آنها می توانید بارگذاری و بارگیری کنید برای GitHub Gist
// @description:fi    Oletko unohtanut tähtivarastojen tarkoituksen? Tämä on skripti, joka voi lisätä muistiinpanoja suosikkikappaleihisi, ja kommenttien tiedot voidaan ladata ja ladata Github GIST: lle
// @description:fo    Hevur tú gloymt endamálið við Star goymslunum? Hetta er eitt script, sum kann leggja notur til tíni yndis goymslur, og upplýsingarnar, tú viðmerkir, kunnu leggjast upp og heintast á GitHub Gist
// @description:fr    Avez-vous oublié le but des référentiels étoiles? Ceci est un script qui peut ajouter des notes à vos référentiels préférés, et les informations que vos commentaires peuvent être téléchargées et téléchargées sur GitHub Gist
// @description:gd    A bheil thu air dìochuimhneachadh adhbhar stòran rionnag? Is e sgriobt a tha seo a dh ’fhaodas notaichean a chuir ris na tasgaidhean as fheàrr leat, agus am fiosrachadh as urrainnear do bheachdan a luchdachadh suas agus a luchdachadh sìos gu Gris Gris
// @description:gl    ¿Esqueciches o propósito dos repositorios de estrelas? Este é un guión que pode engadir notas aos teus repositorios favoritos e a información que comentas pódese cargar e descargar a GitHub Gist
// @description:gu    શું તમે સ્ટાર રીપોઝીટરીઓનો હેતુ ભૂલી ગયા છો? આ એક સ્ક્રિપ્ટ છે જે તમારા મનપસંદ ભંડારોમાં નોંધો ઉમેરી શકે છે, અને તમે જે ટિપ્પણી કરો છો તે માહિતી અપલોડ કરી શકાય છે અને ગીથબ જીસ્ટ પર ડાઉનલોડ કરી શકાય છે
// @description:haw   Ua poina aneiʻoe i ke kumu o nā hōkū hōkū? ʻO kēia kahi palapala e hiki ai ke hoʻohui i nā moʻolelo i kāu mau punahele punahele, a me kaʻike i hiki ke hoʻoiho a hoʻoihoʻia i GitHub Gist
// @description:he    האם שכחת את מטרת מאגרי הכוכבים? זהו סקריפט שיכול להוסיף הערות למאגרים המועדפים עליך, וניתן להעלות ולהוריד את המידע שאתה מעיר
// @description:hi    क्या आप स्टार रिपॉजिटरी के उद्देश्य को भूल गए हैं? यह एक स्क्रिप्ट है जो आपके पसंदीदा रिपॉजिटरी में नोट्स जोड़ सकती है, और आपके द्वारा टिप्पणी की गई जानकारी को अपलोड किया जा सकता है और GitHub Gist पर डाउनलोड किया जा सकता है
// @description:hr    Jeste li zaboravili svrhu zvijezda? Ovo je skripta koja može dodati bilješke u vaša omiljena spremišta, a informacije koje komentirate mogu se prenijeti i preuzeti u GitHub Gist
// @description:ht    Eske ou te bliye bi pou yo repozitwa zetwal yo? Sa a se yon script ki ka ajoute nòt nan zarchiv pi renmen ou, ak enfòmasyon ou kòmantè yo ka Uploaded ak telechaje nan GitHub Gist
// @description:hu    Elfelejtette -e a csillagtároló célját? Ez egy olyan szkript, amely jegyzeteket adhat a kedvenc tárolókhoz, és az Ön által megjegyzett információk feltölthetők és letölthetők a Github GIST -be
// @description:hy    Մոռացել եք աստղային պահոցների նպատակը: Սա սցենար է, որը կարող է գրառումներ ավելացնել ձեր նախընտրած պահեստների համար, եւ ձեր մեկնաբանությունները կարող եք վերբեռնվել եւ ներբեռնել GITHUB GIST
// @description:id    Pernahkah Anda lupa tujuan repositori bintang? Ini adalah skrip yang dapat menambahkan catatan ke repositori favorit Anda, dan informasi yang Anda komentar dapat diunggah dan diunduh ke Gistub Gist
// @description:is    Hefur þú gleymt tilgangi stjörnu geymsla? Þetta er handrit sem getur bætt athugasemdum við uppáhalds geymslurnar þínar og upplýsingarnar sem þú athugasemdir geta verið hlaðið upp og hlaðið niður á Github Gist
// @description:it    Hai dimenticato lo scopo dei repository a stelle? Questo è uno script che può aggiungere note ai tuoi repository preferiti e le informazioni che commenti possono essere caricate e scaricate su Github Gist
// @description:ja    スターリポジトリの目的を忘れましたか?これはお気に入りのリポジトリにメモを追加できるスクリプトであり、コメントする情報をアップロードしてGitHub Gistにダウンロードできます
// @description:ka    დაგავიწყდათ ვარსკვლავების საცავების მიზანი? ეს არის სკრიპტი, რომელსაც შეუძლია დაამატოთ შენიშვნები თქვენს საყვარელ საცავებში, და თქვენი კომენტარების ინფორმაცია შეგიძლიათ ატვირთოთ და გადმოწეროთ Github Gist– ში
// @description:kk    Сіз жұлдызды репозиторийлердің мақсатын ұмытып қалдыңыз ба? Бұл сіздің сүйікті репозиторийлеріңізге жазбалар қоса алатын сценарий және сіз түсініктемелерді github gistul-ге жүктеуге және жүктеуге болатын сценарий
// @description:km    តើអ្នកបានភ្លេចគោលបំណងរបស់ឃ្លាំងស្តារស្តារដែរឬទេ? នេះគឺជាស្គ្រីបដែលអាចបន្ថែមកំណត់ត្រាទៅឃ្លាំងដែលអ្នកចូលចិត្តហើយព័ត៌មានដែលអ្នកផ្តល់យោបល់អាចត្រូវបានផ្ទុកឡើងនិងទាញយកទៅ GitHub Gist
// @description:kn    ಸ್ಟಾರ್ ರೆಪೊಸಿಟರಿಗಳ ಉದ್ದೇಶವನ್ನು ನೀವು ಮರೆತಿದ್ದೀರಾ? ಇದು ನಿಮ್ಮ ನೆಚ್ಚಿನ ರೆಪೊಸಿಟರಿಗಳಿಗೆ ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸಬಹುದಾದ ಸ್ಕ್ರಿಪ್ಟ್, ಮತ್ತು ನೀವು ಕಾಮೆಂಟ್ ಮಾಡುವ ಮಾಹಿತಿಯನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಬಹುದು ಮತ್ತು ಗಿಟ್‌ಹಬ್ ಸಾರಾಂಶಕ್ಕೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು
// @description:ko    스타 저장소의 목적을 잊었습니까? 이것은 좋아하는 저장소에 메모를 추가 할 수있는 스크립트이며, 귀하가 댓글을 달아 Github Gist에 업로드하여 다운로드 할 수 있습니다.
// @description:ku    Ma we armanca repositories star ji bîr kiriye? Ev script e ku dikare li ser repositorên xweyên bijare, û agahdariya ku hûn şîroveyan dikarin lê zêde bikin, dikarin werin barkirin û dakêşin Gitub Gist
// @description:ky    Жылдыздар репозиторийлердин максатын унутуп калдыңызбы? Бул сценарий сиздин сүйүктүү репозиторийлерине ноталарды кошо ала турган сценарий жана сиз комментарийлериңизди жүктөөгө жана Github Gistке жүктөп алууга болот
// @description:la    An oblitus est ad stella repositories? Hoc est scriptum, quod potest addere notas ad vestri ventus repositories et notitia vos comments potest uploaded et downloaded ad Gitub gist
// @description:lb    Hutt Dir den Zweck vun der Star Repositories vergiess? Dëst ass eng Angscht, déi Notize bäifügen, kënnen Notize vun Äre Liiblingsopositorien, an d’Informatiounen, déi Iech de Kommentare eropgelueden ginn an op Gauru gusters eropgelooss ginn an erof op Gitub Gestes
// @description:lo    ທ່ານໄດ້ລືມຈຸດປະສົງຂອງຫໍສະວະກໍາດາວບໍ? ນີ້ແມ່ນສະຄິບທີ່ສາມາດເພີ່ມບັນທຶກເຂົ້າໃນຫໍສະມຸດທີ່ທ່ານມັກ, ແລະຂໍ້ມູນທີ່ທ່ານໃຫ້ຄໍາເຫັນສາມາດອັບໂຫລດແລະດາວໂຫລດໄປທີ່ GitHub Gist
// @description:lt    Ar pamiršote žvaigždžių saugyklų tikslą? Tai scenarijus, kuris gali pridėti pastabas prie mėgstamų saugyklų, o jūsų komentuojamą informaciją galima įkelti ir atsisiųsti į „GitHub Gist“
// @description:lv    Vai esat aizmirsis zvaigžņu krātuvju mērķi? Šis ir skripts, kas var pievienot piezīmes jūsu iecienītākajām krātuvēm, un jūsu komentāru informācija var augšupielādēt un lejupielādēt Github Gist
// @description:mg    Adinonao ve ny tanjon’ny repositories kintana? Ity dia script izay afaka manampy fanamarihana amin’ireo repositories tianao indrindra, ary ny fampahalalana azonao alaina dia azo alefa ary alaina amin’ny GITHUB GIST
// @description:mi    Kua wareware koe i te kaupapa o te whetu o te whetu? He tuhinga tuhi tenei ka taea te taapiri i nga tuhinga e pai ana ki a koe, me nga korero ka taea e koe te tuku me te tango i te Gitupu Gist
// @description:mk    Дали сте ја заборавиле целта на складиштата на Starвездите? Ова е скрипта што може да додаде белешки во вашите омилени складишта, а информациите што ги коментирате можат да бидат поставени и преземени во Github Gist
// @description:ml    സ്റ്റാർ ശേഖരണങ്ങളുടെ ഉദ്ദേശ്യം നിങ്ങൾ മറന്നോ? നിങ്ങളുടെ പ്രിയപ്പെട്ട ശേഖരണങ്ങളിലേക്ക് കുറിപ്പുകൾ ചേർക്കാവുന്ന ഒരു സ്ക്രിപ്റ്റാണ്, മാത്രമല്ല നിങ്ങൾ അഭിപ്രായങ്ങൾ പാലിക്കാനും GitHub ജിസ്റ്റിലേക്ക് ഡ download ൺലോഡ് ചെയ്യാനും കഴിയും
// @description:mn    Оддын сангийн зорилгыг мартсан уу? Энэ бол таны дуртай мэдээллийн хэрэгслээр тэмдэглэл нэмэх боломжтой скрипт бөгөөд таны сэтгэгдлийг байршуулж, github gist руу татаж авах боломжтой скрипт юм
// @description:ms    Adakah anda terlupa tujuan repositori bintang? Ini adalah skrip yang boleh menambah nota ke repositori kegemaran anda, dan maklumat yang anda komen dapat dimuat naik dan dimuat turun ke GitHub Gist
// @description:mt    Insejt l-iskop tar-repożitorji tal-istilel? Dan huwa skript li jista ’jżid noti mar-repożitorji favoriti tiegħek, u l-informazzjoni li l-kummenti tista’ tittella ’u titniżżel fuq gist gist
// @description:my    Star Repositories ၏ရည်ရွယ်ချက်ကိုသင်မေ့သွားပြီလား။ ဤသည်မှာသင်ကြိုက်နှစ်သက်သော repositories များကိုမှတ်စုများထည့်သွင်းနိုင်သည့်ဇာတ်ညွှန်းတစ်ခုဖြစ်ပြီးသင်မှတ်ချက်များကိုတင်ခြင်းနှင့် Gitub Gist သို့ဒေါင်းလုပ်ဆွဲနိုင်သည်
// @description:ne    के तपाईंले स्टार भण्डारको उद्देश्य बिर्सनुभयो? यो एक स्क्रिप्ट हो जुन तपाईंको मनपर्ने रिपोजिटिफिकेसमा नोटहरू थप्न सक्दछ, र सूचनाहरू तपाईंले टिप्पणीहरू अपलोड गर्न सक्नुहुनेछ र githuub gist मा डाउनलोड गर्न सकिन्छ
// @description:nl    Ben je het doel van sterrepositories vergeten? Dit is een script dat notities kan toevoegen aan uw favoriete repositories, en de informatie die u opmerkingen kunt worden geüpload en gedownload naar GitHub Gist
// @description:no    Har du glemt formålet med Star Repositories? Dette er et manus som kan legge til notater til favorittlagringene dine, og informasjonen du kommenterer kan lastes opp og lastes ned til Github Gist
// @description:ny    Kodi mwaiwala cholinga cha nyenyezi? Ichi ndi cholembedwa chomwe chingawonjezere zolemba zomwe mumakonda, ndipo zomwe mumazipeza zitha kukwezedwa ndikutsitsidwa ku Gitob Gist
// @description:pa    ਕੀ ਤੁਸੀਂ ਸਟਾਰ ਰਿਪੋਜ਼ਟਰੀਆਂ ਦਾ ਉਦੇਸ਼ ਭੁੱਲ ਗਏ ਹੋ? ਇਹ ਇਕ ਸਕ੍ਰਿਪਟ ਹੈ ਜੋ ਤੁਹਾਡੀਆਂ ਮਨਪਸੰਦ ਰਿਪੋਜ਼ਟਰੀਆਂ ਨੂੰ ਨੋਟਸ ਜੋੜ ਸਕਦੇ ਹੋ, ਅਤੇ ਜਿਹੜੀ ਜਾਣਕਾਰੀ ਤੁਸੀਂ ਟਿੱਪਣੀਆਂ ਕਰਦੇ ਹੋ ਅਤੇ ਗੈਟਬ ਫਿਸਟ ਨੂੰ ਡਾ and ਨਲੋਡ ਕਰਕੇ ਡਾ ed ਨਲੋਡ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ
// @description:pap   Bo a lubidá e propósito di e depósitonan di Star? Esaki ta un script ku por añadí nota na bo repositorionan faborito, i e informashon ku bo ta komentario por wòrdu subi i download na GitHub Gist
// @description:pl    Czy zapomniałeś o celu repozytoriów gwiazd? Jest to skrypt, który może dodawać notatki do twoich ulubionych repozytoriów, a informacje, które komentarze można przesłać i pobrać do Github Gist
// @description:ps    ایا تاسو د سټار ذخیره کولو هدف هیر کړی؟ دا یو سکریپټ دی چې کولی شي ستاسو د خوښې داوطلبیو ته یادونه اضافه کړي، او هغه معلومات چې تاسو نظر ورکوئ او ډاونلوډ کولی شئ د ګیټوب ګیسټ ته پورته او ډاونلوډ شوی شئ
// @description:pt    Você esqueceu o objetivo dos repositórios de estrelas? Este é um script que pode adicionar notas aos seus repositórios favoritos, e as informações que você comentários podem ser carregadas e baixadas para Github Gist
// @description:ro    Ați uitat scopul depozitelor de stele? Acesta este un script care poate adăuga note la depozitele dvs. preferate, iar informațiile pe care le -ați comentat pot fi încărcate și descărcate în Github Gist
// @description:ru    Вы забыли цель звездных репозитории? Это сценарий, который может добавлять заметки к вашим любимым репозиториям, а информация, которую вы комментарии могут быть загружены и загружены на GitHub Gist
// @description:rw    Wibagiwe intego yinyenyeri yinyenyeri? Iyi ni inyandiko ishobora kongeramo inyandiko mububiko ukunda, kandi amakuru uvuga ibitekerezo arashobora guterwa no gukurwa kuri Github rist
// @description:sg    Mo girisa nda ti aye ti batango na Star? A yeke mbeni script so alingbi ti zia ambeni tënë na ndo ti ando ti batango ye so mo ye ni mingi, na asango so mo yeke sara tënë na ndo ni alingbi ti zia na ndo ti site ni na ti téléchargé ni na GitHub Gist .
// @description:si    තරු ගබඩාවේ අරමුණ ඔබට අමතක වී තිබේද? මෙය ඔබේ ප්රියතම ගබඩාවලට සටහන් එක් කළ හැකි පිටපතක් වන අතර, ඔබ අදහස් දැක්විය හැකි තොරතුරු GitHub atist වෙත උඩුගත කළ හැකිය
// @description:sk    Zabudli ste na účel úložiska hviezd? Toto je skript, ktorý môže do vašich obľúbených úložiskov pridať poznámky a informácie, ktoré komentuje, môžete nahrať a stiahnuť do GitHub Gist
// @description:sl    Ste pozabili namen zvezdnih skladišč? To je scenarij, ki lahko doda zapiske v vaše najljubše skladišča, informacije, ki jih komentirate, pa lahko naložite in prenesete v gist Gist
// @description:sm    Ua galo ia te oe le mafuaʻaga o le Star Respostories? O le tala lea e mafai ona faʻaopopo tusitusiga i au mea e te fiafia i ai, ma o faʻamatalaga o loʻo e manatu e mafai ona lalagaina ma download i Gitthub Gist
// @description:sn    Wakanganwa here chinangwa cheNyeredzi Repositories? Ichi chinyorwa chinogona kuwedzera manotsi kune yako yaunofarira repositories, uye ruzivo rwaunofunga runogona kuiswa uye kutorwa ku github gist
// @description:so    Ma ilowday ujeeddada kaydadka xiddigta? Tani waa qoraal qoraal ah oo ku dari karta astaamaha aad ugu jeceshahay, macluumaadka aad ka hadashayna waxaa lagu soo dejin karaa oo lagu soo dejisan karaa GitHub GIST
// @description:sr    Јесте ли заборавили сврху Стар спремишта? Ово је скрипта која може додати белешке вашим омиљеним складиштима, а информације које коментаришу могу се преносити и преузети у ГитХуб Гист
// @description:sv    Har du glömt syftet med stjärnförvar? Detta är ett skript som kan lägga till anteckningar till dina favoritförvar, och den information du kommenterar kan laddas upp och laddas ner till GitHub Gist
// @description:sw    Je! Umesahau madhumuni ya kumbukumbu za nyota? Hii ni hati ambayo inaweza kuongeza maelezo kwenye hazina zako unazopenda, na habari unayotoa maoni inaweza kupakiwa na kupakuliwa kwa GitHub Gist
// @description:ta    நட்சத்திர களஞ்சியங்களின் நோக்கத்தை நீங்கள் மறந்துவிட்டீர்களா? இது உங்களுக்கு பிடித்த களஞ்சியங்களுக்கு குறிப்புகளைச் சேர்க்கக்கூடிய ஸ்கிரிப்ட் ஆகும், மேலும் நீங்கள் கருத்துத் தெரிவிக்கும் தகவல்களை கிட்ஹப் ஜிஸ்டில் பதிவேற்றி பதிவிறக்கம் செய்யலாம்
// @description:te    మీరు స్టార్ రిపోజిటరీల ఉద్దేశ్యాన్ని మరచిపోయారా? ఇది మీకు ఇష్టమైన రిపోజిటరీలకు గమనికలను జోడించగల స్క్రిప్ట్, మరియు మీరు వ్యాఖ్యలను అప్‌లోడ్ చేసి గితుబ్ జిస్ట్‌కు డౌన్‌లోడ్ చేయవచ్చు
// @description:tg    Оё шумо мақсади қаламравҳои ситораҳоро фаромӯш кардед? Ин скрипест, ки метавонад ба панелоситҳои дӯстдоштаатон қайдҳо илова кунад ва маълумоти шумо шарҳ дода шавад
// @description:th    คุณลืมจุดประสงค์ของที่เก็บดาวหรือไม่? นี่คือสคริปต์ที่สามารถเพิ่มบันทึกย่อในที่เก็บที่คุณชื่นชอบและข้อมูลที่คุณแสดงความคิดเห็นสามารถอัปโหลดและดาวน์โหลดไปยัง GitHub Gist
// @description:ti    ዕላማ መኽዘናት ኮኾብ ረሲዕካዮ ዲኻ? እዚ ስክሪፕት ኣብ ዝፈትውዎ መኽዘናት መዘኻኸሪታት ክውስኽ ዝኽእል ኮይኑ፡ እቲ እትህቦ ሓበሬታ ድማ ናብ Github Gist ክትስቀልን ክትወርድን ትኽእል ኢኻ።
// @description:tk    Staryldyz ammarlarynyň maksadyny ýatdan çykardyňyzmy? Bu skriptler, halaýan ammarda bellikler goşup biljek masgara we Teswirleriňiz Github gist-i ýükläp we göçürip alyp bolýardy
// @description:tn    A o lebetse boikaelelo jwa dipolokelo tsa Star? Se ke sekwalwa se se ka tsenyang dintlha mo mabolokelong a o a ratang, mme tshedimosetso e o e akgelang e ka laisiwa le go laisololwa mo GitHub Gist .
// @description:to    Kuo ngalo nai ’iate koe ’a e taumu’a ’o e ngaahi fale tuku’anga ’o e Star? Ko ha script eni ’e lava ke tanaki atu ha ngaahi fakamatala ki ho’o ngaahi fale tuku’anga koloa manakoa, pea ’e lava ke ’oatu ’a e fakamatala ’oku ke fakamatala’i pea download ki he GitHub Gist .
// @description:tpi   Yu bin lusim tingting long as bilong ol samting bilong kisim ol samting bilong Sta? Dispela em i wanpela skrip we inap putim ol not long ol feveret repositori bilong yu, na ol infomesen yu givim ol koment yu ken putim na daunlodim i go long GitHub Gist .
// @description:tr    Yıldız depolarının amacını unuttunuz mu? Bu, en sevdiğiniz depolara not ekleyebilen bir senaryo ve yorum yaptığınız bilgiler yüklenebilir ve Github Gist’e indirilebilir
// @description:uk    Ви забули мету зіркових сховищ? Це сценарій, який може додати нотатки до ваших улюблених сховищ, і інформація, яку ви коментуєте, можна завантажити та завантажити в Github Gist
// @description:ur    کیا آپ اسٹار ذخیروں کا مقصد بھول گئے ہیں؟ یہ ایک اسکرپٹ ہے جو آپ کے پسندیدہ ذخیروں میں نوٹوں کو شامل کرسکتی ہے ، اور آپ کے تبصرے کی معلومات کو اپ لوڈ اور گٹ ہب گسٹ پر ڈاؤن لوڈ کیا جاسکتا ہے۔
// @description:uz    Siz yulduz omborlarining maqsadi unutdingizmi? Bu sizning sevimli omborlaringizga eslatma qo’shishi mumkin bo’lgan skript, siz sharhlaringiz bilan Gitub Gist-ga yuklanishi mumkin va yuklab olinishi mumkin
// @description:vi    Bạn đã quên mục đích của kho sao? Đây là một tập lệnh có thể thêm ghi chú vào kho lưu trữ yêu thích của bạn và thông tin bạn nhận xét có thể được tải lên và tải xuống
// @description:xh    Ngaba uyilibele injongo yeendawo zokugcina iinkwenkwezi? Esi siskripthi esinokongeza amanqaku kwizikhundla zakho ezifunekileyo, kwaye ulwazi oluza kuxhuma luyityikitywe kwaye lukhutshelwe kwi-GitIst Gist
// @description:yi    האָבן איר פארגעסן די ציל פון שטערן ריפּאַזאַטאָריז? דאָס איז אַ שריפט וואָס קענען לייגן הערות צו דיין באַליבסטע ריפּאַזאַטאָריז, און די אינפֿאָרמאַציע איר באַמערקונגען קענען זיין ופּלאָאַדעד און דאַונלאָודיד צו גיטהוב לערנט
// @description:zh    曾经 Star 过的仓库是不是忘记了它们的用途? 这是一个可以给你收藏过的仓库添加备注的的脚本,并且你备注的信息可以上传下载到 GitHub Gist
// @description:zh-CN 曾经 Star 过的仓库是不是忘记了它们的用途? 这是一个可以给你收藏过的仓库添加备注的的脚本,并且你备注的信息可以上传下载到 GitHub Gist
// @description:zh-HK 曾經 Star 過的倉庫是不是忘記了它們的用途? 這是一個可以給你收藏過的倉庫添加備註的的腳本,並且你備註的信息可以上傳下載到 GitHub Gist
// @description:zh-MO 曾經 Star 過的倉庫是不是忘記了它們的用途? 這是一個可以給你收藏過的倉庫添加備註的的腳本,並且你備註的信息可以上傳下載到 GitHub Gist
// @description:zh-MY 曾经 Star 过的仓库是不是忘记了它们的用途? 这是一个可以给你收藏过的仓库添加备注的的脚本,并且你备注的信息可以上传下载到 GitHub Gist
// @description:zh-SG 曾经 Star 过的仓库是不是忘记了它们的用途? 这是一个可以给你收藏过的仓库添加备注的的脚本,并且你备注的信息可以上传下载到 GitHub Gist
// @description:zh-TW 曾經 Star 過的倉庫是不是忘記了它們的用途? 這是一個可以給你收藏過的倉庫添加備註的的腳本,並且你備註的信息可以上傳下載到 GitHub Gist
// @description:zu    Ngabe usuyikhohliwe inhloso ye-Star Recositories? Lokhu kungumbhalo ongangeza amanothi kuma-repositories akho owathandayo, kanye nolwazi oluphawula ngalo lungalayishwa futhi lulandiwe ku-GitHub Gist
// @author            malagebidi,人民的勤务员 <[email protected]>
// @namespace         https://github.com/ChinaGodMan/UserScripts
// @supportURL        https://github.com/ChinaGodMan/UserScripts/issues
// @homepageURL       https://github.com/ChinaGodMan/UserScripts
// @license           MIT
// @match             https://github.com/*
// @icon              data:image/png;base64,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
// @compatible        chrome
// @compatible        firefox
// @compatible        edge
// @compatible        opera
// @compatible        safari
// @compatible        kiwi
// @compatible        qq
// @compatible        via
// @compatible        brave
// @version           2025.04.24.1933
// @grant             GM_setValue
// @grant             GM_getValue
// @grant             GM_deleteValue
// @grant             GM_addStyle
// @grant             GM_xmlhttpRequest
// @grant             GM_registerMenuCommand
// @require           https://update.greasyfork.org/scripts/498897/1404834/Toastnew.js
// @created           2025-04-21 16:52:52
// @modified          2025-04-21 16:52:52
// ==/UserScript==
/**
 * File: github-starred-repo-note.user.js
 * Project: UserScripts
 * File Created: 2025/04/21,Monday 16:52:52
 * Author: malagebidi<https://greasyfork.org/zh-CN/users/314803>,人民的勤务员@ChinaGodMan ([email protected])
 * -----
 * Last Modified: 2025/04/24,Thursday 19:33:34
 * Modified By: 人民的勤务员@ChinaGodMan ([email protected])
 * -----
 * License: MIT License
 * Copyright © 2024 - 2025 ChinaGodMan,Inc
 */

(async function () {
    'use strict'
    // --- Configuration ---
    var GITHUB_PAT_TOKEN = GM_getValue('GITHUB_PAT_TOKEN', '')
    const userLang =
        (navigator.languages && navigator.languages[0]) ||
        navigator.language ||
        'en'
    const translations = {
        en: {
            NOTE_PLACEHOLDER: 'Enter your note...',
            ADD_BUTTON_TEXT: 'Add Note',
            EDIT_BUTTON_TEXT: 'Edit Note',
            SAVE_BUTTON_TEXT: 'Save',
            CANCEL_BUTTON_TEXT: 'Cancel',
            DELETE_BUTTON_TEXT: 'Delete',
            DOWNLOAD_BUTTON_TEXT: 'Download notes',
            UPLOAD_BUTTON_TEXT: 'Upload notes',
            NO_TOKEN_ALERT_TEXT: 'Please enter your GitHub token',
            DOWNLOAD_GIST_SUCCESS: 'Your cloud backup notes have been restored, please refresh the current page. ',
            DOWNLOAD_GIST_FAILURE: 'Your cloud backup notes failed to be restored, please check whether the GitHub Token is correct. ',
            UPLOAD_GIST_SUCCESS: 'Your cloud backup notes have been saved',
            UPLOAD_GIST_FAILURE: 'Your cloud backup notes failed to be saved, please check whether the GitHub Token is correct. ',
            DELETE_CONFIRM: 'Are you sure you want to delete the note for \"{repoFullName}\"?'

        },
        'zh-CN,zh,zh-SG': {
            NOTE_PLACEHOLDER: '输入备注...',
            ADD_BUTTON_TEXT: '备注',
            EDIT_BUTTON_TEXT: '编辑备注',
            SAVE_BUTTON_TEXT: '保存',
            CANCEL_BUTTON_TEXT: '取消',
            DELETE_BUTTON_TEXT: '删除',
            DOWNLOAD_BUTTON_TEXT: '下载备注',
            UPLOAD_BUTTON_TEXT: '上传备注',
            NO_TOKEN_ALERT_TEXT: '请先输入GitHub Token',
            DOWNLOAD_GIST_SUCCESS: '你的云备份笔记已被恢复,请刷新当前页面.',
            DOWNLOAD_GIST_FAILURE: '你的云备份笔记恢复失败,请检查GitHub Token是否正确.',
            UPLOAD_GIST_SUCCESS: '你的云备份笔记已被保存',
            UPLOAD_GIST_FAILURE: '你的云备份笔记保存失败,请检查GitHub Token是否正确.',
            DELETE_CONFIRM: '你确定要删除\"{repoFullName}\"仓库的备注嘛?'

        },
        'zh-TW,zh-HK,zh-MO': {
            NOTE_PLACEHOLDER: '輸入您的筆記...',
            ADD_BUTTON_TEXT: '添加筆記',
            EDIT_BUTTON_TEXT: '編輯筆記',
            SAVE_BUTTON_TEXT: '保存',
            CANCEL_BUTTON_TEXT: '取消',
            DELETE_BUTTON_TEXT: '刪除'
        },
        vi: {
            NOTE_PLACEHOLDER: 'Nhập ghi chú của bạn...',
            ADD_BUTTON_TEXT: 'Thêm ghi chú',
            EDIT_BUTTON_TEXT: 'Chỉnh sửa ghi chú',
            SAVE_BUTTON_TEXT: 'Lưu',
            CANCEL_BUTTON_TEXT: 'Hủy bỏ',
            DELETE_BUTTON_TEXT: 'Xóa'
        },
        ja: {
            NOTE_PLACEHOLDER: 'メモを入力してください...',
            ADD_BUTTON_TEXT: 'メモを追加',
            EDIT_BUTTON_TEXT: 'メモを編集',
            SAVE_BUTTON_TEXT: '保存',
            CANCEL_BUTTON_TEXT: 'キャンセル',
            DELETE_BUTTON_TEXT: '削除'
        },
        ko: {
            NOTE_PLACEHOLDER: '메모를 입력하세요...',
            ADD_BUTTON_TEXT: '메모 추가',
            EDIT_BUTTON_TEXT: '메모 편집',
            SAVE_BUTTON_TEXT: '저장',
            CANCEL_BUTTON_TEXT: '취소',
            DELETE_BUTTON_TEXT: '삭제'
        }

    }
    const getTranslations = (lang) => {
        for (const key in translations) {
            if (key === lang || key.split(',').includes(lang)) {
                return translations[key]
            }
        }
        return translations['en']
    }
    const translate = new Proxy(
        function (key) {
            const lang = userLang
            const strings = getTranslations(lang)
            return strings[key] || translations['en'][key]
        },
        {
            get(target, prop) {
                const lang = userLang
                const strings = getTranslations(lang)
                return strings[prop] || translations['en'][prop]
            }
        }
    )

    // --- Styles ---
    GM_addStyle(`
        .ghsn-container {
            padding-right: var(--base-size-24, 24px) !important;
            color: var(--fgColor-muted, var(--color-fg-muted)) !important;
            width: 74.99999997%;
        }
        .ghsn-display {
            font-style: italic;
            border: var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default, #d2dff0));
            border-radius: 100px;
            padding: 2.5px 5px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            display: block;
            max-width: fit-content;
        }
        .ghsn-textarea {
            width: 100%;
            min-height: 60px;
            margin-bottom: 5px;
            padding: 5px;
            border: 1px solid var(--color-border-default);
            border-radius: 3px;
            background-color: var(--color-canvas-default);
            color: var(--color-fg-default);
            box-sizing: border-box;
        }
        .ghsn-buttons button {
            margin-right: 5px;
            padding: 3px 8px;
            font-size: 0.9em;
            cursor: pointer;
            border-radius: 4px;
            border: 1px solid var(--color-border-muted);
        }
        .ghsn-buttons button.ghsn-save {
            background-color: var(--color-btn-primary-bg);
            color: var(--color-btn-primary-text);
            border-color: var(--color-btn-primary-border);
        }
        .ghsn-buttons button.ghsn-delete {
            background-color: var(--color-btn-danger-bg);
            color: var(--color-btn-danger-text);
            border-color: var(--color-btn-danger-border);
        }
        .ghsn-buttons button.ghsn-cancel {
            background-color: var(--color-btn-bg);
            color: var(--color-btn-text);
        }
        .ghsn-buttons button:hover {
            filter: brightness(1.1);
        }
        .ghsn-hidden {
            display: none !important;
        }
        .ghsn-note-btn {
            margin-left: 16px;
            color: var(--fgColor-muted);
            cursor: pointer;
            text-decoration: none;
        }
        .ghsn-note-btn:hover {
            color: var(--fgColor-accent) !important;
            -webkit-text-decoration: none;
            text-decoration: none;
        }
        .ghsn-note-btn svg {
            margin-right: 4px;
        }
    `)

    /* ------------------------------- GITHUB GIST ------------------------------ */
    const GistManager = {
        githubToken: null,
        description: null,

        init: function (token, description) {
            this.githubToken = token
            this.description = description || 'Default Gist Description'
        },
        updateToken: function (newToken) {
            this.githubToken = newToken
        },
        // 查找 Gist 根据描述
        findGistByDescription: function (callback) {
            const url = 'https://api.github.com/gists'
            GM_xmlhttpRequest({
                method: 'GET',
                url: url,
                headers: {
                    'Authorization': `token ${this.githubToken}`,
                    'Content-Type': 'application/json'
                },
                onload: function (response) {
                    if (response.status === 200) {
                        const gists = JSON.parse(response.responseText)
                        for (let gist of gists) {
                            if (gist.description === GistManager.description) {
                                console.log('找到匹配的 Gist:', gist.html_url)
                                return callback(gist.id)
                            }
                        }
                        callback(null)
                    } else {
                        console.error('获取 Gist 列表失败:', response.responseText)
                        callback(null)
                    }
                }
            })
        },

        // 上传或更新 Gist
        uploadToGist: function (filename, content) {

            this.findGistByDescription((gistId) => {
                if (gistId) {
                    this.updateGist(gistId, filename, content)
                } else {
                    this.createGist(filename, content)
                }
            })
        },

        // 创建新的 Gist
        createGist: function (filename, content) {
            const url = 'https://api.github.com/gists'
            const data = {
                'description': this.description,
                'public': false,
                'files': {
                    [filename]: {
                        'content': content
                    }
                }
            }
            GM_xmlhttpRequest({
                method: 'POST',
                url: url,
                headers: {
                    'Authorization': `token ${this.githubToken}`,
                    'Content-Type': 'application/json'
                },
                data: JSON.stringify(data),
                onload: function (response) {
                    if (response.status === 201) {
                        const responseData = JSON.parse(response.responseText)
                        console.log('Gist 创建成功:', responseData.html_url)
                    } else {
                        console.error('Gist 创建失败:', response.responseText)
                    }
                }
            })
        },
        downloadGistAsJson: function (filename) {
            this.findGistByDescription((gistId) => {
                if (!gistId) {
                    Toast(translate.DOWNLOAD_GIST_FAILURE, 3000, '#ff6347', '#ffffff', 'top')
                    console.error('未找到匹配的 Gist')
                    return
                }

                const url = `https://api.github.com/gists/${gistId}`
                GM_xmlhttpRequest({
                    method: 'GET',
                    url: url,
                    headers: {
                        'Authorization': `token ${this.githubToken}`,
                        'Content-Type': 'application/json'
                    },
                    onload: function (response) {
                        if (response.status === 200) {
                            const gistData = JSON.parse(response.responseText)
                            const fileContent = gistData.files[filename].content
                            const parsedJson = JSON.parse(fileContent)
                            GM_setValue('starred_notes', parsedJson)
                            Toast(translate.DOWNLOAD_GIST_SUCCESS, 2000, '#00FF00', '#ffffff', 'top')
                        } else {
                            Toast(translate.DOWNLOAD_GIST_FAILURE, 3000, '#ff6347', '#ffffff', 'top')
                            console.error(translate.DOWNLOAD_GIST_FAILURE, response.responseText)
                        }
                    }
                })
            })
        },

        // 更新已有的 Gist
        updateGist: function (gistId, filename, content) {
            const url = `https://api.github.com/gists/${gistId}`
            const data = {
                'files': {
                    [filename]: {
                        'content': content
                    }
                }
            }
            GM_xmlhttpRequest({
                method: 'PATCH',
                url: url,
                headers: {
                    'Authorization': `token ${this.githubToken}`,
                    'Content-Type': 'application/json'
                },
                data: JSON.stringify(data),
                onload: function (response) {
                    if (response.status === 200) {
                        Toast(translate.UPLOAD_GIST_SUCCESS, 2000, '#00FF00', '#ffffff', 'top')
                    } else {
                        Toast(translate.UPLOAD_GIST_FAILURE, 3000, '#ff6347', '#ffffff', 'top')
                        console.error(translate.UPLOAD_GIST_FAILURE, response.responseText)
                    }
                }
            })
        }
    }
    const firstLanuch = GM_getValue('firstLanuch', true)//!首次启动脚本,提醒输入GitHub Token用于上传下载Gist
    if (firstLanuch && !GITHUB_PAT_TOKEN) {
        const userInput = prompt(translate.NO_TOKEN_ALERT_TEXT)
        if (userInput) {
            GM_setValue('GITHUB_PAT_TOKEN', userInput)
            GITHUB_PAT_TOKEN = userInput
        }
        GM_setValue('firstLanuch', false)
    }
    const description = 'github_starred_repo_note'
    GistManager.init(GITHUB_PAT_TOKEN, description)
    const filename = 'github_starred_repo_note.json'
    GM_registerMenuCommand(translate.UPLOAD_BUTTON_TEXT, uploadToGist)
    GM_registerMenuCommand(translate.DOWNLOAD_BUTTON_TEXT, downloadGistAsJson)
    if (Object.keys(GM_getValue('starred_notes', {})).length === 0 && GITHUB_PAT_TOKEN) {
        downloadGistAsJson()
    }
    function uploadToGist() {
        const panelData = GM_getValue('starred_notes', {})
        if (!getGitHubToken()) {
            return
        }
        const jsonData = JSON.stringify(panelData, null, 2)
        GistManager.uploadToGist(filename, jsonData)
    }
    function downloadGistAsJson() {
        if (!getGitHubToken()) {
            return
        }
        GistManager.downloadGistAsJson(filename)
    }
    function getGitHubToken() {
        if (GITHUB_PAT_TOKEN) {
            return true
        }
        const userInput = prompt(translate.NO_TOKEN_ALERT_TEXT)
        if (userInput) {
            GM_setValue('GITHUB_PAT_TOKEN', userInput)
            GITHUB_PAT_TOKEN = userInput
            GistManager.updateToken(GITHUB_PAT_TOKEN)
            return true
        }
        return false
    }
    /* ---------------------------------- json ---------------------------------- */
    // 写
    function saveStarredNote(storageKey, newNote) {
        let starredNotes = GM_getValue('starred_notes', '{}')
        starredNotes = JSON.parse(starredNotes)
        starredNotes[storageKey] = newNote
        GM_setValue('starred_notes', JSON.stringify(starredNotes))
    }
    //读
    function getStarredNote(storageKey) {
        let starredNotes = GM_getValue('starred_notes', '{}')
        starredNotes = JSON.parse(starredNotes)
        return starredNotes[storageKey] || ''
    }
    //删
    function deleteStarredNote(storageKey) {
        let starredNotes = GM_getValue('starred_notes', '{}')
        starredNotes = JSON.parse(starredNotes)

        if (storageKey in starredNotes) {
            delete starredNotes[storageKey]
            GM_setValue('starred_notes', JSON.stringify(starredNotes))
        }
    }
    // --- Core Logic ---
    // Get repo unique identifier (owner/repo)
    function getRepoFullName(repoElement) {
        const link = repoElement.querySelector('div[itemprop="name codeRepository"] > a, h3 > a, h2 > a')
        if (link && link.pathname) {
            return link.pathname.substring(1).replace(/\/$/, '')
        }
        const starForm = repoElement.querySelector('form[action^="/stars/"]')
        if (starForm && starForm.action) {
            const match = starForm.action.match(/\/stars\/([^/]+\/[^/]+)\/star/)
            if (match && match[1]) {
                return match[1]
            }
        }
        console.warn('RepoNotes: Could not find repo name for element:', repoElement)
        return null
    }
    // Create note button with icon
    function createNoteButton(isEdit = false) {
        const button = document.createElement('a')
        button.className = 'ghsn-note-btn'
        button.href = 'javascript:void(0);' // 使用 void(0) 避免页面跳转
        // SVG icon (pencil)
        const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
        svg.setAttribute('aria-hidden', 'true')
        svg.setAttribute('height', '16')
        svg.setAttribute('width', '16')
        svg.setAttribute('viewBox', '0 0 16 16')
        svg.setAttribute('fill', 'currentColor')
        svg.setAttribute('class', 'octicon octicon-star')
        const path = document.createElementNS('http://www.w3.org/2000/svg', 'path')
        // Pencil icon path data
        path.setAttribute('d', 'M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z')
        svg.appendChild(path)
        button.appendChild(svg)
        const textNode = document.createTextNode(isEdit ? translate.EDIT_BUTTON_TEXT : translate.ADD_BUTTON_TEXT)
        button.appendChild(textNode)
        button.updateText = function (isEditing) {
            textNode.textContent = isEditing ? translate.EDIT_BUTTON_TEXT : translate.ADD_BUTTON_TEXT
        }
        return button
    }
    // Add note UI for a single repository
    async function addNoteUI(repoElement) {
        if (repoElement.querySelector('.ghsn-container')) {
            // console.log('RepoNotes: UI already exists for this repo element. Skipping.');
            return
        }
        const existingButton = repoElement.querySelector('.ghsn-star-row .ghsn-note-btn')
        if (existingButton) {
            // console.log('RepoNotes: Button already exists in star row. Skipping.');
            return
        }
        const repoFullName = getRepoFullName(repoElement)
        if (!repoFullName) {
            // console.warn('RepoNotes: Could not get repo full name. Skipping element:', repoElement);
            return
        }
        const storageKey = `ghsn_${repoFullName}`
        let currentNote = getStarredNote(storageKey)
        const starLink = repoElement.querySelector('a[href$="/stargazers"]')
        if (!starLink) {
            // console.warn(`RepoNotes: Could not find star link for repo: ${repoFullName}. Skipping.`);
            return
        }
        let starRow = starLink.parentNode
        if (!starRow.classList.contains('d-flex') && !starRow.classList.contains('float-right')) {
            const potentialRow = starLink.closest('span, div.d-inline-block, div.color-fg-muted')
            if (potentialRow) {
                starRow = potentialRow
            }
        }
        starRow.classList.add('ghsn-star-row')
        const noteButton = createNoteButton(!!currentNote) // !!currentNote 将其转为布尔值
        const container = document.createElement('div')
        container.className = 'ghsn-container'
        if (!currentNote) {
            container.classList.add('ghsn-hidden')
        }
        const displaySpan = document.createElement('span')
        displaySpan.className = 'ghsn-display'
        displaySpan.textContent = currentNote
        if (!currentNote) {
            displaySpan.classList.add('ghsn-hidden')
        }
        const noteTextarea = document.createElement('textarea')
        noteTextarea.className = 'ghsn-textarea ghsn-hidden'
        noteTextarea.placeholder = translate.NOTE_PLACEHOLDER
        const buttonsDiv = document.createElement('div')
        buttonsDiv.className = 'ghsn-buttons ghsn-hidden'
        const saveButton = document.createElement('button')
        saveButton.textContent = translate.SAVE_BUTTON_TEXT
        saveButton.className = 'ghsn-save'
        const cancelButton = document.createElement('button')
        cancelButton.textContent = translate.CANCEL_BUTTON_TEXT
        cancelButton.className = 'ghsn-cancel'
        const deleteButton = document.createElement('button')
        deleteButton.textContent = translate.DELETE_BUTTON_TEXT
        deleteButton.className = 'ghsn-delete'
        noteButton.addEventListener('click', (e) => {
            e.preventDefault()
            const isEditing = !noteTextarea.classList.contains('ghsn-hidden')
            if (!isEditing) {
                noteTextarea.value = currentNote
                displaySpan.classList.add('ghsn-hidden')
                noteTextarea.classList.remove('ghsn-hidden')
                buttonsDiv.classList.remove('ghsn-hidden')
                if (currentNote) {
                    deleteButton.classList.remove('ghsn-hidden')
                } else {
                    deleteButton.classList.add('ghsn-hidden')
                }
                container.classList.remove('ghsn-hidden')
                noteTextarea.focus()
            } else {
                cancelButton.click()
            }
        })
        cancelButton.addEventListener('click', () => {
            noteTextarea.classList.add('ghsn-hidden')
            buttonsDiv.classList.add('ghsn-hidden')
            if (currentNote) {
                displaySpan.textContent = currentNote
                displaySpan.classList.remove('ghsn-hidden')
                container.classList.remove('ghsn-hidden')
            } else {
                container.classList.add('ghsn-hidden')
            }
        })
        saveButton.addEventListener('click', async () => {
            const newNote = noteTextarea.value.trim()
            saveStarredNote(storageKey, newNote)
            currentNote = newNote
            noteButton.updateText(!!newNote)
            if (newNote) {
                displaySpan.textContent = newNote
                displaySpan.classList.remove('ghsn-hidden')
                container.classList.remove('ghsn-hidden')
            } else {
                displaySpan.classList.add('ghsn-hidden')
                container.classList.add('ghsn-hidden')
                deleteStarredNote(storageKey)

            }
            noteTextarea.classList.add('ghsn-hidden')
            buttonsDiv.classList.add('ghsn-hidden')
        })
        deleteButton.addEventListener('click', async () => {
            const showInfo = translate.DELETE_CONFIRM.replace('{repoFullName}', repoFullName)
            //${repoFullName}
            if (window.confirm(`${showInfo}`)) {
                deleteStarredNote(storageKey)
                currentNote = ''
                noteButton.updateText(false)
                displaySpan.classList.add('ghsn-hidden')
                noteTextarea.classList.add('ghsn-hidden')
                buttonsDiv.classList.add('ghsn-hidden')
                container.classList.add('ghsn-hidden')
            }
        })
        buttonsDiv.appendChild(deleteButton)
        buttonsDiv.appendChild(saveButton)
        buttonsDiv.appendChild(cancelButton)
        container.appendChild(displaySpan)
        container.appendChild(noteTextarea)
        container.appendChild(buttonsDiv)
        // 修改这里:将按钮作为starRow的最后一个元素
        starRow.appendChild(noteButton)
        const description = repoElement.querySelector('p.color-fg-muted')
        const topics = repoElement.querySelector('.topic-tag-list')
        const insertAfterElement = topics || description || repoElement.querySelector('h3, h2')
        if (insertAfterElement && insertAfterElement.parentNode) {
            insertAfterElement.parentNode.insertBefore(container, insertAfterElement.nextSibling)
        } else {
            repoElement.appendChild(container)
            console.warn(`RepoNotes: Could not find ideal insertion point for note container in repo: ${repoFullName}. Appending to end.`)
        }
    }
    // --- Process all repositories on the page ---
    function processRepositories() {
        const repoSelector = 'div.col-12.d-block.width-full.py-4.border-bottom.color-border-muted, article.Box-row'
        const repoElements = document.querySelectorAll(repoSelector)
        // console.log(`RepoNotes: Found ${repoElements.length} repository elements.`);
        if (repoElements.length === 0) {
            // console.log("RepoNotes: No repository elements found with selector:", repoSelector);
            const fallbackSelector = 'li[data-view-component="true"].Box-row'
            const fallbackElements = document.querySelectorAll(fallbackSelector)
            fallbackElements.forEach(addNoteUI)
        } else {
            repoElements.forEach(addNoteUI)
        }
    }

    // --- Observe DOM changes (handle dynamic loading like infinite scroll) ---
    let observer = null

    function setupObserver() {
        if (observer) {
            observer.disconnect()
        }

        const targetNode = document.getElementById('user-repositories-list') || document.querySelector('main') || document.body

        if (!targetNode) {
            console.error('RepoNotes: Could not find target node for MutationObserver.')
            return
        }
        // console.log('RepoNotes: Setting up MutationObserver on target:', targetNode);

        observer = new MutationObserver(mutations => {
            // console.log('RepoNotes: MutationObserver detected changes.');
            let needsProcessing = false
            mutations.forEach(mutation => {
                mutation.addedNodes.forEach(node => {
                    if (node.nodeType === 1) {
                        const repoSelector = 'div.col-12.d-block.width-full.py-4.border-bottom.color-border-muted, article.Box-row, li[data-view-component="true"].Box-row'
                        if (node.matches(repoSelector)) {
                            // console.log('RepoNotes: Added node matches repo selector:', node);
                            addNoteUI(node)
                            needsProcessing = true
                        } else {
                            const nestedRepos = node.querySelectorAll(repoSelector)
                            if (nestedRepos.length > 0) {
                                // console.log(`RepoNotes: Found ${nestedRepos.length} nested repos in added node:`, node);
                                nestedRepos.forEach(addNoteUI)
                                needsProcessing = true
                            }
                        }
                    }
                })
            })
        })

        observer.observe(targetNode, {
            childList: true,
            subtree: true
        })
    }

    // --- Startup and Navigation Handling ---

    function initializeOrReinitialize() {
        if (window.location.search.includes('tab=stars') || document.querySelector('div.col-12.d-block.width-full.py-4') || document.querySelector('article.Box-row')) {
            // console.log('RepoNotes: Running processRepositories.');
            processRepositories()
            // console.log('RepoNotes: Setting up observer.');
            setupObserver()
        } else {
            // console.log('RepoNotes: Not on a relevant page, skipping processing and observer setup.');
            if (observer) {
                observer.disconnect()
                // console.log('RepoNotes: Disconnected observer.');
            }
        }
    }

    document.addEventListener('turbo:load', () => {
        // console.log('RepoNotes: turbo:load event detected.');
        initializeOrReinitialize()
    })

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initializeOrReinitialize)
    } else {
        initializeOrReinitialize()
    }

})()