aboutsummaryrefslogtreecommitdiff
path: root/sorter/rules.toml
blob: ae1cbfda7f3101f9990db1c9c51d754b61cba713 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# ─────────────────────────────────────────────────────────────────────────────
#  Downloads Sorter — Rules Configuration (TOML)
#
#  PRIORITY: content_keywords > filename_keywords
#  File contents are scanned first; filename is used as fallback.
#
#  FOLDER PATHS: relative to your Downloads directory.
#  Use / for subfolders, e.g. "Work/ARC"
#
#  KEYWORD TIPS:
#  - Case-insensitive ("arc" matches "ARC", "Arc", "arc")
#  - Partial match ("kasprzak" matches "Łukasz Kasprzak International Trade")
#  - Always quote strings — avoids TOML type surprises with numbers
#  - NIP/REGON/KRS numbers are the most reliable content keywords
#  - Polish characters work fine (ł, ó, ą, ś, ź, etc.)
#  - Categories are checked in order — first match wins
# ─────────────────────────────────────────────────────────────────────────────

# Catch-all folder for files that match no category
fallback_folder = "Other"

# File types to scan (add or remove extensions as needed)
supported_extensions = [
    ".pdf",
    ".docx",
    ".doc",
    ".txt",
    ".xlsx",
    ".xls",
    ".md",
    ".odt",
    ".sh",
    ".py",
    ".js",
    ".ts",
    ".html",
    ".css",
    ".json",
    ".yaml",
    ".toml",
]

# ── Categories ────────────────────────────────────────────────────────────────
# Each [[categories]] block defines one destination folder.
# Add as many blocks as you need.

[[categories]]
name        = "Work/ARC"
description = "Arc of Asia Sp. z o.o. — documents, invoices, correspondence"
content_keywords = [
    "arc of asia",
    "arc of asia spółka z ograniczoną odpowiedzialnością",
    "arc of asia spolka z ograniczona odpowiedzialnoscia",
    "aleja grunwaldzka 56",
    "9571181577",        # NIP
    "540356138",         # REGON
    "0001140839",        # KRS
    "pl957118157700000", # EORI
]
filename_keywords = [
    "arc",
    "aoa",
    "arc_of_asia",
]

[[categories]]
name        = "Work/LKIT"
description = "Łukasz Kasprzak International Trade — documents, invoices, correspondence"
content_keywords = [
    "łukasz kasprzak international trade",
    "lukasz kasprzak international trade",
    "8181739189",  # NIP
    "540804571",   # REGON
]
filename_keywords = [
    "lkit",
    "kasprzak",
]

[[categories]]
name        = "AKW"
description = "Akademia Katolicka w Warszawie"
content_keywords = [
    "akademia katolicka w warszawie",
    "akademia katolicka",
]
filename_keywords = [
    "akw",
]

[[categories]]
name = "Code"
description = "Scripts and source code files"
filename_keywords = [".sh", ".py", ".js", ".ts", ".html", ".css", ".json", ".yaml", ".toml"]
# ── Add more categories below ─────────────────────────────────────────────────

# [[categories]]
# name        = "Finance/Banking"
# description = "Bank statements, Revolut, account history"
# content_keywords = [
#     "revolut",
#     "account statement",
#     "wyciąg bankowy",
# ]
# filename_keywords = [
#     "revolut",
#     "statement",
#     "wyciag",
# ]

# [[categories]]
# name        = "Finance/Invoices"
# description = "VAT invoices and receipts"
# content_keywords = [
#     "faktura vat",
#     "invoice",
#     "23% vat",
# ]
# filename_keywords = [
#     "faktura",
#     "invoice",
# ]

# [[categories]]
# name        = "Personal/Tax"
# description = "Tax documents and PIT forms"
# content_keywords = [
#     "pit-37",
#     "pit-36",
#     "urząd skarbowy",
#     "zeznanie podatkowe",
# ]
# filename_keywords = [
#     "pit",
#     "podatek",
#     "tax",
# ]