แž”แž„แŸ’แž€แžพแžแž”แžŽแŸ’แžŽแžถแž›แŸแž™แžแžถแž˜แž•แŸ’แž‘แŸ‡แžŠแŸ„แž™แž”แŸ’แžšแžพ Notion แž“แžทแž„ Python

แžแŸ’แž‰แžปแŸ†แžแŸ‚แž„แžแŸ‚แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแžขแŸ†แž–แžธแžšแž”แŸ€แž”แžŠแŸ‚แž›แž›แŸ’แžขแž”แŸ†แž•แžปแžแž€แŸ’แž“แžปแž„แž€แžถแžšแž…แŸ‚แž€แž…แžถแž™แžŸแŸ€แžœแž—แŸ…แž“แŸ…แž€แŸ’แž“แžปแž„แž”แžŽแŸ’แžŽแžถแž›แŸแž™แžขแŸแžกแžทแž…แžแŸ’แžšแžผแž“แžทแž…แžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ†แŸ” แž“แŸ…แž‘แžธแž”แž‰แŸ’แž…แž”แŸ‹แžแŸ’แž‰แžปแŸ†แž”แžถแž“แž˜แž€แžŠแž›แŸ‹แž‡แž˜แŸ’แžšแžพแžŸแž“แŸแŸ‡แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž‚แžŽแž“แžถแžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž“แŸƒแž…แŸ†แž“แžฝแž“แž‘แŸ†แž–แŸแžšแž“แžทแž„แžขแŸ†แžŽแŸ„แž™แž•แž›แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแŸ” แžแŸ’แž‰แžปแŸ†แžŸแžฝแžšแžขแŸ’แž“แž€แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸ…แž€แŸ’แžšแŸ„แž˜แž†แŸ’แž˜แžถแŸ”

แž•แŸ’แž“แŸ‚แž€แž‘แžธ 1. Dropbox

แžŸแŸ€แžœแž—แŸ…แž‘แžถแŸ†แž„แžขแžŸแŸ‹แžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ†แž˜แžถแž“แž“แŸ…แž›แžพแž”แŸ’แžšแžขแž”แŸ‹แž‘แž˜แŸ’แž›แžถแž€แŸ‹แž…แžปแŸ‡แŸ” แž˜แžถแž“ 4 แž”แŸ’แžšแž—แŸแž‘แžŠแŸ‚แž›แžแŸ’แž‰แžปแŸ†แž”แžถแž“แž”แŸ‚แž„แž…แŸ‚แž€แžขแŸ’แžœแžธแž‚แŸ’แžšแž”แŸ‹แž™แŸ‰แžถแž„: แžŸแŸ€แžœแž—แŸ…แžŸแžทแž€แŸ’แžŸแžถ, แžฏแž€แžŸแžถแžšแž™แŸ„แž„, แž”แŸ’แžšแžŒแžทแž, แž˜แžทแž“แž”แŸ’แžšแžŒแžทแžแŸ” แž”แŸ‰แžปแž“แŸ’แžแŸ‚โ€‹แžแŸ’แž‰แžปแŸ†โ€‹แž˜แžทแž“โ€‹แž”แž“แŸ’แžแŸ‚แž˜โ€‹แžŸแŸ€แžœแž—แŸ…โ€‹แž™แŸ„แž„โ€‹แž‘แŸ…โ€‹แž€แŸ’แž“แžปแž„โ€‹แžแžถแžšแžถแž„โ€‹แž‘แŸแŸ”

แžŸแŸ€แžœแž—แŸ…แž—แžถแž‚แž…แŸ’แžšแžพแž“แž‚แžบ .epub แž“แŸ…แžŸแž›แŸ‹แž‚แžบ .pdf แŸ” แž“แŸ„แŸ‡แž‚แžบแžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž…แžปแž„แž€แŸ’แžšแŸ„แž™แžแŸ’แžšแžผแžœแžแŸ‚แž‚แŸ’แžšแž”แžŠแžŽแŸ’แžแž”แŸ‹แž›แžพแž‡แž˜แŸ’แžšแžพแžŸแž‘แžถแŸ†แž„แž–แžธแžšแŸ”

แž•แŸ’แž›แžผแžœแžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ†แž‘แŸ…แž€แžถแž“แŸ‹แžŸแŸ€แžœแž—แŸ…แž˜แžถแž“แžŠแžผแž…แž‡แžถแŸ–

/ะšะฝะธะณะธ/ะะตั…ัƒะดะพะถะตัั‚ะฒะตะฝะฝะพะต/ะะพะฒะพะต/ะ”ะธะทะฐะนะฝ/ะฎั€ะธะน ะ“ะพั€ะดะพะฝ/ะšะฝะธะณะฐ ะฟั€ะพ ะฑัƒะบะฒั‹ ะพั‚ ะ ะดะพ ะฏ.epub 

แž”แŸ’แžšแžŸแžทแž“แž”แžพแžŸแŸ€แžœแž—แŸ…แž“แŸ„แŸ‡แž‡แžถแžšแžฟแž„แž”แŸ’แžšแžŒแžทแž แž“แŸ„แŸ‡แž”แŸ’แžšแž—แŸแž‘ (แž“แŸ„แŸ‡แž‚แžบ "แž€แžถแžšแžšแž…แž“แžถ" แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแžแžถแž„แž›แžพ) แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแž€แž…แŸแž‰แŸ”

แžแŸ’แž‰แžปแŸ†แž”แžถแž“แžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแž˜แžทแž“แžšแŸ†แžแžถแž“แž‡แžถแž˜แžฝแž™ Dropbox API แž‘แŸ แž–แŸ’แžšแŸ„แŸ‡แžแŸ’แž‰แžปแŸ†แž˜แžถแž“แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸแžŠแŸ‚แž›แž’แŸ’แžœแžพแžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜แžแžแžฏแž€แžŸแžถแžšแŸ” แž“แŸ„แŸ‡แž‚แžบแž‡แžถแž•แŸ‚แž“แž€แžถแžšแž‚แžบแž“แŸแŸ‡แŸ– แž™แžพแž„แž™แž€แžŸแŸ€แžœแž—แŸ…แž…แŸแž‰แž–แžธแžแžแžฏแž€แžŸแžถแžš แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ€แžœแž—แŸ…แž“แžธแž˜แžฝแž™แŸ—แžแžถแž˜แžšแž™แŸˆแžงแž”แž€แžšแžŽแŸแžšแžถแž”แŸ‹แž–แžถแž€แŸ’แž™ แž แžพแž™แž”แž“แŸ’แžแŸ‚แž˜แžœแžถแž‘แŸ…แž€แŸ’แž“แžปแž„แžŸแž‰แŸ’แž‰แžถแžŽแŸ”

แž•แŸ’แž“แŸ‚แž€แž‘แžธ 2. แž”แž“แŸ’แžแŸ‚แž˜แž”แž“แŸ’แž‘แžถแžแŸ‹

แžแžปแžแŸ’แž›แžฝแž“แžฏแž„แž‚แžฝแžšแžแŸ‚แž˜แžพแž›แž‘แŸ…แžŠแžผแž…แž“แŸแŸ‡แŸ” แž™แž€แž…แžทแžแŸ’แžแž‘แžปแž€แžŠแžถแž€แŸ‹แŸ– แžœแžถแž‡แžถแž€แžถแžšแž”แŸ’แžšแžŸแžพแžšแž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž„แŸ’แž€แžพแžแžˆแŸ’แž˜แŸ„แŸ‡แž‡แžฝแžšแžˆแžšแž‡แžถแž—แžถแžŸแžถแžกแžถแžแžถแŸ†แž„แŸ”

แž”แž„แŸ’แž€แžพแžแž”แžŽแŸ’แžŽแžถแž›แŸแž™แžแžถแž˜แž•แŸ’แž‘แŸ‡แžŠแŸ„แž™แž”แŸ’แžšแžพ Notion แž“แžทแž„ Python

แž™แžพแž„โ€‹แž“แžนแž„โ€‹แž”แŸ’แžšแžพ Notion API แž€แŸ’แžšแŸ…โ€‹แž•แŸ’แž›แžผแžœโ€‹แž€แžถแžš แž–แŸ’แžšแŸ„แŸ‡โ€‹แž‡แžถโ€‹แž•แŸ’แž›แžผแžœโ€‹แž€แžถแžšโ€‹แž˜แžทแž“โ€‹แž‘แžถแž“แŸ‹โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž•แŸ’แžแž›แŸ‹โ€‹แž‡แžผแž“โ€‹แž“แŸ…โ€‹แžกแžพแž™โ€‹แž‘แŸแŸ”

แž”แž„แŸ’แž€แžพแžแž”แžŽแŸ’แžŽแžถแž›แŸแž™แžแžถแž˜แž•แŸ’แž‘แŸ‡แžŠแŸ„แž™แž”แŸ’แžšแžพ Notion แž“แžทแž„ Python

แž…แžผแž›แž‘แŸ…แž€แžถแž“แŸ‹ Notion แž…แžปแž… Ctrl + Shift + J แž…แžผแž›แž‘แŸ…แž€แžถแž“แŸ‹ Application -> Cookies แž…แž˜แŸ’แž›แž„ token_v2 แž แžพแž™แž แŸ…แžœแžถแžแžถ TOKEN แŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž™แžพแž„แž‘แŸ…แž€แžถแž“แŸ‹แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แž™แžพแž„แžแŸ’แžšแžผแžœแž€แžถแžšแž‡แžถแž˜แžฝแž™แž“แžนแž„แžŸแž‰แŸ’แž‰แžถแž”แžŽแŸ’แžŽแžถแž›แŸแž™ แž แžพแž™แž…แž˜แŸ’แž›แž„แžแŸ†แžŽแŸ” แž™แžพแž„แž แŸ…แžœแžถแžแžถ NOTION แŸ”

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž™แžพแž„แžŸแžšแžŸแŸแžšแž€แžผแžŠแžŠแžพแž˜แŸ’แž”แžธแž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ… Notion แŸ”

database = client.get_collection_view(NOTION)
current_rows = database.default_query().execute()

แž”แž“แŸ’แž‘แžถแž”แŸ‹โ€‹แž˜แž€ แž™แžพแž„โ€‹แžŸแžšแžŸแŸแžšโ€‹แž˜แžปแžแž„แžถแžšโ€‹แžŠแžพแž˜แŸ’แž”แžธโ€‹แž”แž“แŸ’แžแŸ‚แž˜โ€‹แž‡แžฝแžšโ€‹แžŠแŸแž€โ€‹แž‘แŸ…โ€‹แžแžถแžšแžถแž„แŸ”

def add_row(path, file, words_count, pages_count, hours):
    row = database.collection.add_row()
    row.title = file

    tags = path.split("/")

    if len(tags) >= 1:
        row.what = tags[0]

    if len(tags) >= 2:
        row.state = tags[1]

    if len(tags) >= 3:
        if tags[0] == "ะฅัƒะดะพะถะตัั‚ะฒะตะฝะฝะพะต":
            row.author = tags[2]

        elif tags[0] == "ะะตั…ัƒะดะพะถะตัั‚ะฒะตะฝะฝะพะต":
            row.tags = tags[2]

        elif tags[0] == "ะฃั‡ะตะฑะฝะธะบะธ":
            row.tags = tags[2]

    if len(tags) >= 4:
        row.author = tags[3]

    row.hours = hours
    row.pages = pages_count
    row.words = words_count

แžแžพแž˜แžถแž“แžขแŸ’แžœแžธแž€แžพแžแžกแžพแž„แž“แŸ…แž‘แžธแž“แŸแŸ‡แŸ” แž™แžพแž„แž™แž€แž แžพแž™แž”แž“แŸ’แžแŸ‚แž˜แž‡แžฝแžšแžแŸ’แž˜แžธแž‘แŸ…แžแžถแžšแžถแž„แž“แŸ…แž‡แžฝแžšแž‘แžธแž˜แžฝแž™แŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€ แž™แžพแž„แž”แŸ†แž”แŸ‚แž€แž•แŸ’แž›แžผแžœแžšแž”แžŸแŸ‹แž™แžพแž„แžแžถแž˜ โ€œ/โ€ แž แžพแž™แž‘แž‘แžฝแž›แž”แžถแž“แžŸแŸ’แž›แžถแž€แŸ” แžŸแŸ’แž›แžถแž€ - แž“แŸ…แž€แŸ’แž“แžปแž„แž›แž€แŸ’แžแžแžŽแŸ’แžŒแž“แŸƒ "แžŸแžทแž›แŸ’แž”แŸˆ", "แž€แžถแžšแžšแž…แž“แžถ", แž“แžšแžŽแžถแž‡แžถแžขแŸ’แž“แž€แž“แžทแž–แž“แŸ’แž’แž“แžทแž„แžŠแžผแž…แŸ’แž“แŸแŸ‡แž“แŸ…แž›แžพแŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž™แžพแž„แž€แŸ†แžŽแžแŸ‹แžœแžถแž›แž…แžถแŸ†แž”แžถแž…แŸ‹แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸƒแž…แžถแž“แŸ”

แž•แŸ’แž“แŸ‚แž€แž‘แžธ 3. แž€แžถแžšแžšแžถแž”แŸ‹แž–แžถแž€แŸ’แž™แž˜แŸ‰แŸ„แž„แž“แžทแž„แž€แžถแžšแžšแžธแž€แžšแžถแž™แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแŸ”

แž“แŸแŸ‡แž‚แžบแž‡แžถแž€แžทแž…แŸ’แž…แž€แžถแžšแžŠแŸ‚แž›แž–แžทแž”แžถแž€แž‡แžถแž„แŸ” แžŠแžผแž…แžŠแŸ‚แž›แž™แžพแž„แž…แž„แž…แžถแŸ†แž™แžพแž„แž˜แžถแž“แž‘แž˜แŸ’แžšแž„แŸ‹แž–แžธแžšแž‚แžบ epub แž“แžทแž„ pdf แŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แžœแžธแŸ—แž˜แžถแž“แž—แžถแž–แž…แŸ’แž”แžถแžŸแŸ‹แž›แžถแžŸแŸ‹แž‡แžถแž˜แžฝแž™ epub - แž–แžถแž€แŸ’แž™แž”แŸ’แžšแž แŸ‚แž›แž‡แžถแž“แŸ…แž‘แžธแž“แŸ„แŸ‡ แž“แŸ„แŸ‡แžขแŸ’แžœแžธแŸ—แž˜แžทแž“แž…แŸ’แž”แžถแžŸแŸ‹แžขแŸ†แž–แžธ pdf แž‘แŸแŸ– แžœแžถแžขแžถแž…แž˜แžถแž“แžšแžผแž”แž—แžถแž–แžŸแŸ’แžขแžทแžแž‡แžถแž”แŸ‹แŸ”

แžŠแžผแž…แŸ’แž“แŸแŸ‡แž˜แžปแžแž„แžถแžšแžšแž”แžŸแŸ‹แž™แžพแž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžšแžถแž”แŸ‹แž–แžถแž€แŸ’แž™แž“แŸ…แž€แŸ’แž“แžปแž„ PDF แž“แžนแž„แž˜แžพแž›แž‘แŸ…แžŠแžผแž…แž“แŸแŸ‡แŸ– แž™แžพแž„แž™แž€แž…แŸ†แž“แžฝแž“แž‘แŸ†แž–แŸแžš แž แžพแž™แž‚แžปแžŽแž“แžนแž„แž…แŸ†แž“แžฝแž“แžแŸแžšแž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แž˜แžฝแž™ (แž…แŸ†แž“แžฝแž“แž˜แž’แŸ’แž™แž˜แž“แŸƒแž–แžถแž€แŸ’แž™แž€แŸ’แž“แžปแž„แž˜แžฝแž™แž‘แŸ†แž–แŸแžš)แŸ”

แž“แŸ…แž‘แžธแž“แŸแŸ‡แž“แžถแž„แŸ–

def get_words_count(pages_number):
    return pages_number * WORDS_PER_PAGE

WORDS_PER_PAGE แž“แŸแŸ‡แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‘แŸ†แž–แŸแžš A4 แž‚แžบแž”แŸ’แžšแž แŸ‚แž› 300แŸ”

แžฅแžกแžผแžœโ€‹แž™แžพแž„โ€‹แžŸแžšแžŸแŸแžšโ€‹แž˜แžปแžแž„แžถแžšโ€‹แžšแžถแž”แŸ‹โ€‹แž‘แŸ†แž–แŸแžšแŸ” แž™แžพแž„แž“แžนแž„แž”แŸ’แžšแžพ PyPDF แŸข.

def get_pdf_pages_number(path, filename):
    pdf = PdfFileReader(open(os.path.join(path, filename), 'rb'))
    return pdf.getNumPages()

แž”แž“แŸ’แž‘แžถแž”แŸ‹ แž™แžพแž„แž“แžนแž„แžŸแžšแžŸแŸแžšแžšแžฟแž„แž˜แžฝแž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžšแžถแž”แŸ‹แž‘แŸ†แž–แŸแžšแž“แŸ…แž€แŸ’แž“แžปแž„ Epub แŸ” แž™แžพแž„โ€‹แž”แŸ’แžšแžพ epub_แž”แž˜แŸ’แž›แŸ‚แž„. แž“แŸ…แž‘แžธแž“แŸแŸ‡แž™แžพแž„แž™แž€แžŸแŸ€แžœแž—แŸ… แž”แž˜แŸ’แž›แŸ‚แž„แžœแžถแž‘แŸ…แž‡แžถแž”แž“แŸ’แž‘แžถแžแŸ‹ แž แžพแž™แžšแžถแž”แŸ‹แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แž“แŸ’แž‘แžถแžแŸ‹แž“แžธแž˜แžฝแž™แŸ—แŸ”

def get_epub_pages_number(path, filename):
    book = open_book(os.path.join(path, filename))
    lines = convert_epub_to_lines(book)
    words_count = 0

    for line in lines:
        words_count += len(line.split(" "))

    return round(words_count / WORDS_PER_PAGE)

แžฅแžกแžผแžœแž™แžพแž„แž‚แžŽแž“แžถแž–แŸแž›แžœแŸแž›แžถแŸ” แž™แžพแž„แž™แž€แž…แŸ†แž“แžฝแž“แž–แžถแž€แŸ’แž™แžŠแŸ‚แž›แž™แžพแž„แž…แžผแž›แž…แžทแžแŸ’แž แž แžพแž™แž”แŸ‚แž„แž…แŸ‚แž€แžœแžถแžแžถแž˜แž›แŸ’แž”แžฟแž“แžขแžถแž“แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ”

def get_reading_time(words_count):
    return round(((words_count / WORDS_PER_MINUTE) / 60) * 10) / 10

แž•แŸ’แž“แŸ‚แž€แž‘แžธ 4. แž€แžถแžšแž—แŸ’แž‡แžถแž”แŸ‹แž•แŸ’แž“แŸ‚แž€แž‘แžถแŸ†แž„แžขแžŸแŸ‹แŸ”

แž™แžพแž„แžแŸ’แžšแžผแžœแž†แŸ’แž›แž„แž€แžถแžแŸ‹แž•แŸ’แž›แžผแžœแžŠแŸ‚แž›แžขแžถแž…แž’แŸ’แžœแžพแž”แžถแž“แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„แžแžแžŸแŸ€แžœแž—แŸ…แžšแž”แžŸแŸ‹แž™แžพแž„แŸ” แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžแžถแžแžพแž˜แžถแž“แžŸแŸ€แžœแž—แŸ…แž“แŸ…แž€แŸ’แž“แžปแž„ Notion แžšแžฝแž…แž แžพแž™แžฌแž“แŸ…แŸ– แž”แŸ’แžšแžŸแžทแž“แž”แžพแž˜แžถแž“ แž™แžพแž„แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แž”แž„แŸ’แž€แžพแžแž”แž“แŸ’แž‘แžถแžแŸ‹แž‘แŸ€แžแž‘แŸแŸ”
แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž™แžพแž„แžแŸ’แžšแžผแžœแž€แŸ†แžŽแžแŸ‹แž”แŸ’แžšแž—แŸแž‘แžฏแž€แžŸแžถแžšแžขแžถแžŸแŸ’แžšแŸแž™แž›แžพแž“แŸแŸ‡แžšแžถแž”แŸ‹แž…แŸ†แž“แžฝแž“แž–แžถแž€แŸ’แž™แŸ” แž”แž“แŸ’แžแŸ‚แž˜แžŸแŸ€แžœแž—แŸ…แž“แŸ…แž…แžปแž„แž”แž‰แŸ’แž…แž”แŸ‹แŸ”

แž“แŸแŸ‡แž‚แžบแž‡แžถแž›แŸแžแž€แžผแžŠแžŠแŸ‚แž›แž™แžพแž„แž‘แž‘แžฝแž›แž”แžถแž“แŸ–

for root, subdirs, files in os.walk(BOOKS_DIR):
    if len(files) > 0 and check_for_excusion(root):
        for file in files:
            array = file.split(".")
            filetype = file.split(".")[len(array) - 1]
            filename = file.replace("." + filetype, "")
            local_root = root.replace(BOOKS_DIR, "")

            print("Dir: {}, file: {}".format(local_root, file))

            if not check_for_existence(filename):
                print("Dir: {}, file: {}".format(local_root, file))

                if filetype == "pdf":
                    count = get_pdf_pages_number(root, file)

                else:
                    count = get_epub_pages_number(root, file)

                words_count = get_words_count(count)
                hours = get_reading_time(words_count)
                print("Pages: {}, Words: {}, Hours: {}".format(count, words_count, hours))
                add_row(local_root, filename, words_count, count, hours)

แž แžพแž™แž˜แžปแžแž„แžถแžšแžŠแžพแž˜แŸ’แž”แžธแž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžแžถแžแžพแžŸแŸ€แžœแž—แŸ…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž˜แžพแž›แž‘แŸ…แžŠแžผแž…แž“แŸแŸ‡แŸ–

def check_for_existence(filename):
    for row in current_rows:
        if row.title in filename:
            return True

        elif filename in row.title:
            return True

    return False

แžŸแŸแž…แž€แŸ’แžแžธแžŸแž“แŸ’แž“แžทแžŠแŸ’แž‹แžถแž“

แžŸแžผแž˜แžขแžšแž‚แžปแžŽแžŠแž›แŸ‹แžขแŸ’แž“แž€แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แž“แžถแžŠแŸ‚แž›แž”แžถแž“แžขแžถแž“แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡แŸ” แžแŸ’แž‰แžปแŸ†แžŸแž„แŸ’แžƒแžนแž˜แžแžถแžœแžถแž‡แžฝแž™แžขแŸ’แž“แž€แžขแžถแž“แž”แž“แŸ’แžแŸ‚แž˜ :)

แž”แŸ’แžšแž—แž–: www.habr.com

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹