Queria compartilhar com vocês um projetinho que eu desenvolvi chamado Postix. Era um projetinho que sempre procurei no linux, mas nenhum funcionava como eu gostaria que funcionasse. Mas é basicamente um app de post-it para desktop Linux, simples, leve e sempre visível. Dá pra criar várias notas, usar cores diferentes, escrever em markdown, adicionar imagens e até configurar alarmes com som personalizado.
A ideia foi criar algo prático pro dia a dia, sem depender de nuvem, tudo rodando localmente.
Olá @mobostar0101, primeiramente muito obrigado por me ajudar a testar. Gerei uma nova versão. Baixe e instale a mais nova versão se possível. Depois, abra o terminal e veja se está com missing dependencies com o comando:
sudo apt install -f
Depois abra-o novamente. Confira se ele ficou minimizado na bandeja do sistema, proximo ao relógio. Testado aqui com Linux Mint 22. Qualquer coisa só falar.
linux@linux:~$ postix
Traceback (most recent call last):
File "/usr/lib/postix/postix/main.py", line 20, in <module>
main()
File "/usr/lib/postix/postix/main.py", line 15, in main
app = PostixApp()
^^^^^^^^^^^
File "/usr/lib/postix/postix/app.py", line 29, in __init__
db.init_db()
File "/usr/lib/postix/postix/database.py", line 26, in init_db
_migrate(conn)
File "/usr/lib/postix/postix/database.py", line 21, in _migrate
conn.execute("ALTER TABLE alarms ADD COLUMN sound_path TEXT")
sqlite3.OperationalError: no such table: alarms
Confesso que Isto ai foi oreiada minha. Como o banco ja existia na minha maquina, na hora do release eu deveria ter deletado o banco ou ter feito bkp para retestar. Por isto deu problema. Agora refiz a escrita do banco mais migration. Nova versão disponível:
Vale a pena testar permissões arquivo do DB, e em qualquer arquivo acessado pelo seu projeto. Eu quase já fiz deploy sem verificar isso e com certeza daria ruim. Não mecho com Python, apenas Rust e TS, mas acho q no Python um Try/Catch já deve resolver…
Sim, com certeza as chances são baixas, mas se por algum motivo a pasta .local/share estiver com r--, ou algum usuario mecher nessa permissão, é interessante q a msg de erro retorne algo explicativo, e não um simples panic do python. Q é oq esta acontecendo, removi a permissão, e não temos msg nem informacão do usuario:
Traceback (most recent call last):
File "/home/henrique/Downloads/postix/postix/main.py", line 20, in <module>
main()
~~~~^^
File "/home/henrique/Downloads/postix/postix/main.py", line 15, in main
app = PostixApp()
File "/home/henrique/Downloads/postix/postix/app.py", line 29, in __init__
db.init_db()
~~~~~~~~~~^^
File "/home/henrique/Downloads/postix/postix/database.py", line 29, in init_db
with get_connection() as conn:
~~~~~~~~~~~~~~^^
File "/home/henrique/Downloads/postix/postix/database.py", line 11, in get_connection
conn = sqlite3.connect(str(DB_PATH))
sqlite3.OperationalError: unable to open database file
Se algo pode dar errado, muito provavelmende vai dar errado pra alguem. É fácil de resolver, no TypeScript pelo menos, eu fiz isso aqui:
export const prepareDB = (dir: string, path: string) => {
try {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true })
}
const db = new Database(path, { create: true })
return db
} catch (error) {
console.error(`${error}`)
process.exit(1)
}
}