Compare commits
15 commits
Author | SHA1 | Date | |
---|---|---|---|
ac2209962b | |||
2fae0eb496 | |||
754ed0f898 | |||
48b4b6ce96 | |||
8cb708d8db | |||
1382806018 | |||
968ca355df | |||
96ddf06817 | |||
858eaee5a7 | |||
5dfea6c063 | |||
0f58b1dfa9 | |||
9dfa04fa01 | |||
53ee8a8faf | |||
f37667e1f5 | |||
e0d8391c2e |
7 changed files with 224 additions and 43 deletions
29
.drone.yml
Normal file
29
.drone.yml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: default
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Frontend
|
||||||
|
image: node:18
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
path: /stupid
|
||||||
|
commands:
|
||||||
|
- pwd
|
||||||
|
- make build-templates
|
||||||
|
|
||||||
|
- name: Backend
|
||||||
|
image: golang:1.13
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
path: /stupid
|
||||||
|
commands:
|
||||||
|
- pwd
|
||||||
|
- go get -v -t -d ./...
|
||||||
|
- make build-binaries
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
temp: {}
|
||||||
|
#
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,6 +1,8 @@
|
||||||
/node_modules
|
/node_modules
|
||||||
/musala-mail
|
/musala
|
||||||
/bin
|
/bin
|
||||||
/vendor
|
/vendor
|
||||||
/tmp
|
/tmp
|
||||||
|
/_*
|
||||||
.env
|
.env
|
||||||
|
|
||||||
|
|
63
README.md
63
README.md
|
@ -1,6 +1,6 @@
|
||||||
# <img src="doc/logo-title-paths.svg" width="50%" style="display: block; margin: 0 auto;" alt="Musala" />
|
# <img src="doc/logo-title-paths.svg" width="50%" style="display: block; margin: 0 auto;" alt="Musala" />
|
||||||
|
|
||||||
![Build](https://github.com/glenux/musala/workflows/build/badge.svg?branch=master)
|
[![Build Status](https://cicd.apps.glenux.net/api/badges/glenux/musala/status.svg?ref=refs/heads/develop)](https://cicd.apps.glenux.net/glenux/musala)
|
||||||
[![GitHub license](https://img.shields.io/github/license/glenux/musala.svg)](https://github.com/glenux/musala/blob/master/LICENSE.txt)
|
[![GitHub license](https://img.shields.io/github/license/glenux/musala.svg)](https://github.com/glenux/musala/blob/master/LICENSE.txt)
|
||||||
[![Donate on patreon](https://img.shields.io/badge/patreon-donate-orange.svg)](https://patreon.com/glenux)
|
[![Donate on patreon](https://img.shields.io/badge/patreon-donate-orange.svg)](https://patreon.com/glenux)
|
||||||
|
|
||||||
|
@ -10,33 +10,46 @@ Note: _musala_ means _work, occupation_ [in Lingala](https://dic.lingala.be/fr/m
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
|
|
||||||
Task sources:
|
Multiple task sources & destinations:
|
||||||
|
|
||||||
* :heavy_check_mark: __Trello__
|
* :heavy_check_mark: __Trello__
|
||||||
* :x: Nextcloud Deck (not yet) - [API Reference](https://github.com/nextcloud/deck/blob/master/docs/API.md)
|
* :x: Nextcloud Deck (not yet)
|
||||||
* :x: Wekan (not yet) - [API Reference](https://github.com/wekan/wekan/wiki/REST-API)
|
/ Wekan (not yet)
|
||||||
* :x: Libreboard (not yet)
|
/ Gitea / Forgejo (not yet)
|
||||||
* :x: Github Projects (not yet)
|
/ Libreboard (not yet)
|
||||||
|
/ Github Projects (not yet)
|
||||||
|
|
||||||
Source selection
|
Board Data selection:
|
||||||
|
|
||||||
* :heavy_check_mark: __All of them__
|
* :heavy_check_mark: __All boards__
|
||||||
* :heavy_check_mark: __Favorited boards__
|
/ __Favorited boards__
|
||||||
* :heavy_check_mark: __Only selected ones__
|
/ __Only selected ones__
|
||||||
|
|
||||||
|
Task actions:
|
||||||
|
|
||||||
|
* :heavy_check_mark: __List tasks__
|
||||||
|
* :x: Create task
|
||||||
|
/ Read task
|
||||||
|
/ Update task
|
||||||
|
/ Remove task
|
||||||
|
|
||||||
Delivery via:
|
Delivery via:
|
||||||
|
|
||||||
* :heavy_check_mark: __E-mail__
|
* :heavy_check_mark: __E-mail__
|
||||||
* :x: Telegram
|
* :x: Terminal
|
||||||
* :x: Slack
|
/ Webhook
|
||||||
* :x: SMS
|
/ UnifiedPush
|
||||||
* :x: Whatsapp
|
/ Telegram
|
||||||
* :x: IRC
|
/ Slack
|
||||||
|
/ SMS
|
||||||
|
/ Whatsapp
|
||||||
|
/ IRC
|
||||||
|
|
||||||
User interface for account configuration
|
UI for task management:
|
||||||
|
|
||||||
* :heavy_check_mark: Command line + environment variables
|
* :heavy_check_mark: Simple CLI + environment variables
|
||||||
* :x: Web app
|
* :x: Composable CLI + environment variables
|
||||||
|
/ Web UI
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
@ -44,7 +57,11 @@ User interface for account configuration
|
||||||
|
|
||||||
Make sure you have Go installed, then type:
|
Make sure you have Go installed, then type:
|
||||||
|
|
||||||
$ go install github.com/glenux/musala/...
|
$ go install github.com/glenux/musala/...@master
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
$ go install code.apps.glenux.net/glenux/musala/...@master
|
||||||
|
|
||||||
It will install Musala Mail binary in `$GOPATH/bin`
|
It will install Musala Mail binary in `$GOPATH/bin`
|
||||||
|
|
||||||
|
@ -126,6 +143,9 @@ Then run the program:
|
||||||
|
|
||||||
Got questions? Need help? Tweet at [@glenux](https://twitter.com/glenux)
|
Got questions? Need help? Tweet at [@glenux](https://twitter.com/glenux)
|
||||||
|
|
||||||
|
## Thanks
|
||||||
|
|
||||||
|
Thanks to Tamim & Stephanie for watching me updating this project.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
@ -136,4 +156,7 @@ Musala is Copyright © 2018-2021 Glenn ROLLAND. It is free software, and may be
|
||||||
Following projects may also inspire you:
|
Following projects may also inspire you:
|
||||||
|
|
||||||
* [72nd/deck-cli](https://github.com/72nd/deck-cli): a command-line tool for interacting with Nextcloud's Deck Plugin by using it's API
|
* [72nd/deck-cli](https://github.com/72nd/deck-cli): a command-line tool for interacting with Nextcloud's Deck Plugin by using it's API
|
||||||
|
* [Nextcloud API Reference](https://github.com/nextcloud/deck/blob/master/docs/API.md)
|
||||||
|
* [Wekan API Reference](https://github.com/wekan/wekan/wiki/REST-API)
|
||||||
|
* [Gitea API Usage](https://docs.gitea.io/en-us/api-usage/) and [Gitea API Reference](https://try.gitea.io/api/swagger)
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
/home/warbrain/src/Contrib/contrib-trello
|
../contrib-trello
|
51
doc/draft-composable-functions.md
Normal file
51
doc/draft-composable-functions.md
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
# Composable functions
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
### With pipes
|
||||||
|
|
||||||
|
musala-pull SOURCE \
|
||||||
|
| musala-add TASK \
|
||||||
|
| musala-remove --purge SOMETASK \
|
||||||
|
| musala-push DEST
|
||||||
|
|
||||||
|
### With internal filters
|
||||||
|
|
||||||
|
Also writeable like
|
||||||
|
|
||||||
|
musala pull SOURCE % add TASK1 % remove --purge TASK2 % push DEST
|
||||||
|
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
### musala pull
|
||||||
|
|
||||||
|
Download all tasks from source
|
||||||
|
|
||||||
|
Get tasks from remote source
|
||||||
|
|
||||||
|
Writes tasks as JSON to stdout
|
||||||
|
|
||||||
|
### musala add
|
||||||
|
|
||||||
|
Add new task
|
||||||
|
|
||||||
|
Get tasks from stdin (json)
|
||||||
|
|
||||||
|
Add a new task
|
||||||
|
|
||||||
|
Writes tasks as JSON to stdout
|
||||||
|
|
||||||
|
### musala remove
|
||||||
|
|
||||||
|
* Get tasks from stdin (json)
|
||||||
|
* Mark a task as removed
|
||||||
|
* Remove tasks marked as remove (if --purge enabled)
|
||||||
|
* Writes tasks as JSON to stdout
|
||||||
|
|
||||||
|
### musala push
|
||||||
|
|
||||||
|
* Get tasks from stdin (json)
|
||||||
|
* Writes tasks to REMOTE DESTINATION
|
||||||
|
|
||||||
|
|
12
doc/nextcloud-auth.md
Normal file
12
doc/nextcloud-auth.md
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
|
||||||
|
# Nextcloud API
|
||||||
|
|
||||||
|
Read https://docs.nextcloud.com/server/latest/developer_manual/client_apis/LoginFlow/index.html
|
||||||
|
|
||||||
|
Step 1
|
||||||
|
|
||||||
|
$ curl -X POST https://cloud.apps.glenux.net/index.php/login/v2
|
||||||
|
|
||||||
|
Step 2
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
<mjml>
|
<mjml>
|
||||||
<mj-head>
|
<mj-head>
|
||||||
<mj-style inline="inline">
|
<mj-style inline="inline">
|
||||||
.footer-link { color: white !important; font-weight: bold; text-decoration: underline !important; }
|
.footer-link { color: white !important; font-weight: bold; text-decoration: underline !important; }
|
||||||
</mj-style>
|
</mj-style>
|
||||||
</mj-head>
|
</mj-head>
|
||||||
|
|
||||||
<mj-body>
|
<mj-body>
|
||||||
|
<!-- section 1 -->
|
||||||
<mj-section>
|
<mj-section>
|
||||||
<mj-group>
|
<mj-group>
|
||||||
<mj-column>
|
<mj-column>
|
||||||
|
@ -15,41 +16,104 @@
|
||||||
<mj-text font-size="20px" color="#F45E43" font-family="helvetica" align="center">
|
<mj-text font-size="20px" color="#F45E43" font-family="helvetica" align="center">
|
||||||
Mardi 28 aout 2020
|
Mardi 28 aout 2020
|
||||||
</mj-text>
|
</mj-text>
|
||||||
<mj-button href="#" font-family="Helvetica" background-color="#f45e43" color="white">Visit Board
|
<mj-button href="#" font-family="Helvetica" background-color="#f45e43" color="white">Visit Musala
|
||||||
</mj-button>
|
</mj-button>
|
||||||
</mj-column>
|
</mj-column>
|
||||||
</mj-group>
|
</mj-group>
|
||||||
</mj-section>
|
</mj-section>
|
||||||
|
|
||||||
|
<!-- Title section -->
|
||||||
<mj-section>
|
<mj-section>
|
||||||
<mj-column>
|
<mj-column>
|
||||||
<mj-divider border-color="#F45E43"></mj-divider>
|
<mj-divider border-color="#F45E43"></mj-divider>
|
||||||
<mj-text font-size="20px" color="#F45E43" font-family="helvetica" align="center">
|
<mj-text font-size="24px" color="#F45E43" font-family="helvetica" align="center">
|
||||||
Your daily task list for
|
Your daily task list
|
||||||
</mj-text>
|
|
||||||
<mj-text font-size="24px" font-weight="bold" color="#F45E43" font-family="helvetica" align="center">
|
|
||||||
BC.Business.Operational
|
|
||||||
</mj-text>
|
</mj-text>
|
||||||
<mj-divider border-color="#F45E43"></mj-divider>
|
<mj-divider border-color="#F45E43"></mj-divider>
|
||||||
</mj-column>
|
</mj-column>
|
||||||
</mj-section>
|
</mj-section>
|
||||||
|
|
||||||
|
<!-- Chapter -->
|
||||||
<mj-section>
|
<mj-section>
|
||||||
<mj-column>
|
<mj-column>
|
||||||
<mj-button font-size="20px" font-family="Helvetica" font-weight="bold" background-color="#f45e43" align="left" color="white">Topic ABC
|
<mj-button font-size="20px" font-family="Helvetica" font-weight="bold" background-color="#f45e43" align="left" color="white">Late
|
||||||
</mj-button>
|
</mj-button>
|
||||||
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" font-weight="bold" align="left">
|
|
||||||
Topic dsfsdfs
|
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left" line-height="1.25">
|
||||||
</mj-text>
|
<p style="margin: 0 0 4px 0;"><b>Super task number one</b></p>
|
||||||
<mj-text font-size="16px" color="#666" font-family="helvetica" align="left">
|
<p style="margin: 0 0 4px 0; color: #bbb; font-size: 14px;"><b>Draft</b> on <b>cloud.boldcode.io</b> – Due for 2001-10-10</p>
|
||||||
Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a>
|
<p style="margin: 0 0 4px 0; ">Lorem ipsum dolor sit amet, blablablabla, lorem ipsum dolor sit amet, blablablabla, lorem ipsum dolor sit amet, blablablabla ▪ <a href="#rezrez" style="color: #f45e43;">read more</a></p>
|
||||||
</mj-text>
|
</mj-text>
|
||||||
|
|
||||||
|
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left" line-height="1.25">
|
||||||
|
<p style="margin: 0 0 4px 0;"><b>Super task number one</b></p>
|
||||||
|
<p style="margin: 0 0 4px 0; color: #bbb; font-size: 14px;"><b>Draft</b> on <b>cloud.boldcode.io</b> – Due for 2001-10-10</p>
|
||||||
|
<p style="margin: 0 0 4px 0; ">Lorem ipsum dolor sit amet, blablablabla, lorem ipsum dolor sit amet, blablablabla, lorem ipsum dolor sit amet, blablablabla ▪ <a href="#rezrez" style="color: #f45e43;">read more</a></p>
|
||||||
|
</mj-text>
|
||||||
|
|
||||||
|
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left" line-height="1.25">
|
||||||
|
<p><b>Super task number one</b><br/></p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||||
|
</mj-text>
|
||||||
</mj-column>
|
</mj-column>
|
||||||
</mj-section>
|
</mj-section>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Chapter -->
|
||||||
|
<mj-section>
|
||||||
|
<mj-column>
|
||||||
|
<mj-button font-size="20px" font-family="Helvetica" font-weight="bold" background-color="#f45e43" align="left" color="white">Today
|
||||||
|
</mj-button>
|
||||||
|
|
||||||
|
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||||
|
<p><b>Super task number one</b></p>
|
||||||
|
<p font-size="14px">Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||||
|
</mj-text>
|
||||||
|
|
||||||
|
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||||
|
<p><b>Super task number one</b><br/></p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||||
|
</mj-text>
|
||||||
|
|
||||||
|
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||||
|
<p><b>Super task number one</b><br/></p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||||
|
</mj-text>
|
||||||
|
</mj-column>
|
||||||
|
</mj-section>
|
||||||
|
|
||||||
|
<!-- Chapter -->
|
||||||
|
<mj-section>
|
||||||
|
<mj-column>
|
||||||
|
<mj-button font-size="20px" font-family="Helvetica" font-weight="bold" background-color="#f45e43" align="left" color="white">This week
|
||||||
|
</mj-button>
|
||||||
|
|
||||||
|
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||||
|
<p><b>Super task number one</b></p>
|
||||||
|
<p font-size="14px">Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||||
|
</mj-text>
|
||||||
|
|
||||||
|
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||||
|
<p><b>Super task number one</b><br/></p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||||
|
</mj-text>
|
||||||
|
|
||||||
|
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||||
|
<p><b>Super task number one</b><br/></p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||||
|
</mj-text>
|
||||||
|
</mj-column>
|
||||||
|
</mj-section>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- footer -->
|
||||||
<mj-section>
|
<mj-section>
|
||||||
<mj-column background-color="white" inner-background-color="#f45e43" padding-right="20px" padding-left="20px">
|
<mj-column background-color="white" inner-background-color="#f45e43" padding-right="20px" padding-left="20px">
|
||||||
<mj-text font-size="16px" color="#ffffff" font-family="helvetica" align="left" >
|
<mj-text font-size="16px" color="#ffffff" font-family="helvetica" align="left">
|
||||||
To stop receiving these emails, you can change your <a href="#" class="footer-link">notification preferences</a> in <a href="#" class="footer-link">Musala</a>.
|
To stop receiving these emails, you can change your <a href="#" class="footer-link">notification preferences</a> in <a href="#" class="footer-link">Musala</a>.
|
||||||
</mj-text>
|
</mj-text>
|
||||||
</mj-column>
|
</mj-column>
|
||||||
</mj-section>
|
</mj-section>
|
||||||
|
|
||||||
</mj-body>
|
</mj-body>
|
||||||
</mjml>
|
</mjml>
|
||||||
|
|
Loading…
Reference in a new issue