Compare commits

..

35 commits
dev ... main

Author SHA1 Message Date
Renovate Bot
dc20c39860 fix(deps): update rust crate regex to 1.11.0
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
ci/woodpecker/pull_request_closed/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
2024-09-29 13:47:07 +00:00
fbd398c9a9 fix(deps): update rust crate flexi_logger to 0.29.0 (#43)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [flexi_logger](https://crates.io/crates/flexi_logger) ([source](https://github.com/emabee/flexi_logger)) | dependencies | minor | `0.28.0` -> `0.29.0` |

---

### Release Notes

<details>
<summary>emabee/flexi_logger (flexi_logger)</summary>

### [`v0.29.0`](https://github.com/emabee/flexi_logger/blob/HEAD/CHANGELOG.md#0290---2024-08-25)

Revised `SyslogWriter` (-> version bump): introduced builder pattern,
added a configuration option for the message format
(resolves [issue #&#8203;168](https://github.com/emabee/flexi_logger/issues/168), kudos to [krims0n32](https://github.com/krims0n32)).

`LoggerHandle::existing_log_files` now also returns a meaningful result if file rotation is not
used. Kudos to [drdo](https://github.com/drdo) for
[discussion 170](https://github.com/emabee/flexi_logger/discussions/170).

### [`v0.28.5`](https://github.com/emabee/flexi_logger/blob/HEAD/CHANGELOG.md#0285---2024-06-21)

Remove unnecessary dependency to `is-terminal`.

Add impl `From<LevelFilter>` for `LogSpecification`.

Kudos to [Oakchris1955](https://github.com/Oakchris1955).

### [`v0.28.4`](https://github.com/emabee/flexi_logger/blob/HEAD/CHANGELOG.md#0284---2024-06-14)

Fix [issue #&#8203;162](https://github.com/emabee/flexi_logger/issues/162)
(FileLogWriter does not follow its max_level), kudos to [JoeWildfong](https://github.com/JoeWildfong).

### [`v0.28.3`](https://github.com/emabee/flexi_logger/blob/HEAD/CHANGELOG.md#0283---2024-06-10)

Add special handling for empty current infix to `Naming::TimestampsCustomFormat`
([issue #&#8203;161](https://github.com/emabee/flexi_logger/issues/161)).

### [`v0.28.2`](https://github.com/emabee/flexi_logger/blob/HEAD/CHANGELOG.md#0282---2024-06-09)

Add variant `Naming::TimestampsCustomFormat` ([issue #&#8203;158](https://github.com/emabee/flexi_logger/issues/158)),
kudos to [jb-alvarado](https://github.com/jb-alvarado).

### [`v0.28.1`](https://github.com/emabee/flexi_logger/blob/HEAD/CHANGELOG.md#0281---2024-06-01)

Introduce `flexi_logger::init()` as super-minimal entry usage.

Update dependencies.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Mi4zIiwidXBkYXRlZEluVmVyIjoiMzguNTIuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #43
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-08-25 22:26:27 +01:00
39d261c5f3 fix(deps): update rust crate itertools to 0.13.0 (#42)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [itertools](https://github.com/rust-itertools/itertools) | dependencies | minor | `0.12.1` -> `0.13.0` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM2Ny4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #42
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-05-17 08:42:26 +01:00
82e346e683 chore(deps): prevent renovate from creating pointless PRs
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
Signed-off-by: kemitix <kemitix@noreply.kemitix.net>
2024-04-27 14:30:46 +01:00
5e1378d536 fix(deps): update rust crate eyre to 0.6.12 (#40)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [eyre](https://github.com/eyre-rs/eyre) | dependencies | patch | `0.6` -> `0.6.12` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMjIuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMyMi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #40
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-04-25 10:41:16 +01:00
0e1fb97c7f fix(deps): update rust crate thiserror to 1.0.59 (#39)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [thiserror](https://github.com/dtolnay/thiserror) | dependencies | patch | `1.0.58` -> `1.0.59` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #39
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-04-20 20:18:58 +01:00
f5a4bd18ed fix(deps): update rust crate chrono to 0.4.38 (#38)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [chrono](https://github.com/chronotope/chrono) | dependencies | patch | `0.4.36` -> `0.4.38` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yOTYuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI5Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #38
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-04-20 19:13:22 +01:00
e8090036d4 fix(deps): update rust crate comfy-table to 7.1.1 (#37)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [comfy-table](https://github.com/nukesor/comfy-table) | dependencies | patch | `7.1.0` -> `7.1.1` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNzkuNCIsInVwZGF0ZWRJblZlciI6IjM3LjI3OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #37
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-04-05 22:54:22 +01:00
40d737375f fix(deps): update rust crate openssl-sys to 0.9.102 (#36)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [openssl-sys](https://github.com/sfackler/rust-openssl) | dependencies | patch | `0.9.101` -> `0.9.102` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #36
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-28 22:11:06 +00:00
afcce58d6d fix(deps): update rust crate indicatif to 0.17.8 (#24)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [indicatif](https://github.com/console-rs/indicatif) | dependencies | minor | `0.16.2` -> `0.17.8` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzQuMSIsInVwZGF0ZWRJblZlciI6IjM3LjI3Mi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Co-authored-by: Paul Campbell <pcampbell@kemitix.net>
Reviewed-on: #24
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-27 10:50:18 +00:00
cce948a6bc fix(deps): update rust crate base64 to 0.22.0 (#16)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [base64](https://github.com/marshallpierce/rust-base64) | dependencies | minor | `0.13.0` -> `0.22.0` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjI2NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Co-authored-by: Paul Campbell <pcampbell@kemitix.net>
Reviewed-on: #16
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-27 09:45:43 +00:00
15435ec24e fix(deps): update rust crate chrono to 0.4.36 (#34)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [chrono](https://github.com/chronotope/chrono) | dependencies | patch | `0.4.35` -> `0.4.36` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI3MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #34
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-26 16:59:28 +00:00
b0f2706a8e fix(deps): update rust crate regex to 1.10.4 (#33)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [regex](https://github.com/rust-lang/regex) | dependencies | patch | `1.10.3` -> `1.10.4` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjYuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI2Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #33
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-23 07:04:43 +00:00
7a406c5ed1 fix(deps): update rust crate flexi_logger to 0.28.0 (#32)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [flexi_logger](https://crates.io/crates/flexi_logger) ([source](https://github.com/emabee/flexi_logger)) | dependencies | minor | `0.27.4` -> `0.28.0` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNDkuMyIsInVwZGF0ZWRJblZlciI6IjM3LjI0OS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #32
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-16 12:19:36 +00:00
283598a649 fix(deps): update rust crate thiserror to 1.0.58 (#31)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [thiserror](https://github.com/dtolnay/thiserror) | dependencies | patch | `1.0.57` -> `1.0.58` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzYuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIzNi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #31
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-12 07:54:19 +00:00
27c1c8130b fix(deps): update rust crate comfy-table to v7 (#29)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/cron/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [comfy-table](https://github.com/nukesor/comfy-table) | dependencies | major | `3.0.0` -> `7.1.0` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzQuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Co-authored-by: Paul Campbell <pcampbell@kemitix.net>
Reviewed-on: #29
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 19:35:51 +00:00
c0299fc72c fix(deps): update rust crate epub-builder to 0.7.4 (#21)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [epub-builder](https://github.com/lise-henry/epub-builder) | dependencies | minor | `0.4.8` -> `0.7.4` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzQuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIzNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Co-authored-by: Paul Campbell <pcampbell@kemitix.net>
Reviewed-on: #21
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 18:39:03 +00:00
424f772d47 fix(deps): update rust crate directories to v5 (#30)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [directories](https://github.com/soc/directories-rs) | dependencies | major | `3.0.2` -> `5.0.1` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzQuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #30
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 13:38:45 +00:00
cbf2244926 fix(deps): update rust crate url to 2.5.0 (#27)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [url](https://github.com/servo/rust-url) | dependencies | minor | `2.2.2` -> `2.5.0` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzQuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #27
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 13:38:28 +00:00
3a0088b8f5 fix(deps): update rust crate regex to 1.10.3 (#26)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [regex](https://github.com/rust-lang/regex) | dependencies | minor | `1.5.4` -> `1.10.3` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzQuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #26
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 13:38:17 +00:00
16df047668 fix(deps): update rust crate itertools to 0.12.1 (#25)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [itertools](https://github.com/rust-itertools/itertools) | dependencies | minor | `0.10.1` -> `0.12.1` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzQuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #25
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 13:38:07 +00:00
a6d6726fa1 fix(deps): update rust crate flexi_logger to 0.27.4 (#22)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [flexi_logger](https://crates.io/crates/flexi_logger) ([source](https://github.com/emabee/flexi_logger)) | dependencies | minor | `0.18.0` -> `0.27.4` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzQuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #22
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 13:37:57 +00:00
29b56045f8 fix(deps): update rust crate derive_builder to 0.20.0 (#20)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [derive_builder](https://github.com/colin-kiegel/rust-derive-builder) | dependencies | minor | `0.10.2` -> `0.20.0` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzQuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIzNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #20
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 13:02:02 +00:00
56daf4b7c2 fix(deps): update rust crate colored to 2.1.0 (#18)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [colored](https://github.com/mackwic/colored) | dependencies | minor | `2.0.0` -> `2.1.0` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #18
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 12:32:36 +00:00
0160cf4991 fix(deps): update rust crate surf to 2.3.2 (#19)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [surf](https://github.com/http-rs/surf) | dependencies | minor | `2.2.0` -> `2.3.2` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #19
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 12:22:41 +00:00
fdf049c2af fix(deps): update rust crate clap to 2.34.0 (#17)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [clap](https://github.com/clap-rs/clap) | dependencies | minor | `2.33.3` -> `2.34.0` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #17
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 12:22:29 +00:00
789633840c fix(deps): update rust crate async-std to 1.12.0 (#15)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [async-std](https://async.rs) ([source](https://github.com/async-rs/async-std)) | dependencies | minor | `1.9.0` -> `1.12.0` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #15
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 11:03:16 +00:00
556c3a67e1 fix(deps): update rust crate futures to 0.3.30 (#9)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [futures](https://rust-lang.github.io/futures-rs) ([source](https://github.com/rust-lang/futures-rs)) | dependencies | patch | `0.3.15` -> `0.3.30` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #9
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 11:03:05 +00:00
14aaf5718e fix(deps): update rust crate thiserror to 1.0.57 (#12)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [thiserror](https://github.com/dtolnay/thiserror) | dependencies | patch | `1.0.25` -> `1.0.57` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #12
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 10:49:10 +00:00
200d36023a fix(deps): update rust crate log to 0.4.21 (#11)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [log](https://github.com/rust-lang/log) | dependencies | patch | `0.4.14` -> `0.4.21` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #11
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 10:32:52 +00:00
dfe424e078 fix(deps): update rust crate chrono to 0.4.35 (#8)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [chrono](https://github.com/chronotope/chrono) | dependencies | patch | `0.4.19` -> `0.4.35` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #8
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 10:32:36 +00:00
c9fc2148e2 chore: enable building with latest version of rust (#14)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Closes kemitix/paperoni#13

Reviewed-on: #14
Co-authored-by: Paul Campbell <pcampbell@kemitix.net>
Co-committed-by: Paul Campbell <pcampbell@kemitix.net>
2024-03-10 10:25:18 +00:00
83a1c70c68 chore: Configure Renovate (#7)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Welcome to [Renovate](https://github.com/renovatebot/renovate)! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.

---
### Detected Package Files

 * `Cargo.toml` (cargo)
 * `.woodpecker.yml` (woodpecker)

### Configuration Summary

Based on the default config's presets, Renovate will:

  - Start dependency updates only once this onboarding PR is merged
  - Enable Renovate Dependency Dashboard creation.
  - Use semantic commit type `fix` for dependencies and `chore` for all others if semantic commits are in use.
  - Ignore `node_modules`, `bower_components`, `vendor` and various test/tests directories.
  - Group known monorepo packages together.
  - Use curated list of recommended non-monorepo package groupings.
  - Apply crowd-sourced package replacement rules.
  - Apply crowd-sourced workarounds for known problems with packages.

🔡 Do you want to change how Renovate upgrades your dependencies? Add your custom config to `renovate.json` in this branch. Renovate will update the Pull Request description the next time it runs.

---

### What to Expect

With your current configuration, Renovate will create 21 Pull Requests:

<details>
<summary>fix(deps): update rust crate chrono to 0.4.35</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/chrono-0.x`
  - Merge into: `main`
  - Upgrade [chrono](https://github.com/chronotope/chrono) to `0.4.35`

</details>

<details>
<summary>fix(deps): update rust crate futures to 0.3.30</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/rust-futures-monorepo`
  - Merge into: `main`
  - Upgrade [futures](https://github.com/rust-lang/futures-rs) to `0.3.30`

</details>

<details>
<summary>fix(deps): update rust crate log to 0.4.21</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/log-0.x`
  - Merge into: `main`
  - Upgrade [log](https://github.com/rust-lang/log) to `0.4.21`

</details>

<details>
<summary>fix(deps): update rust crate thiserror to 1.0.57</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/thiserror-1.x`
  - Merge into: `main`
  - Upgrade [thiserror](https://github.com/dtolnay/thiserror) to `1.0.57`

</details>

<details>
<summary>chore(deps): update docker.io/rust docker tag to v1.76.0</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/docker.io-rust-1.x`
  - Merge into: `main`
  - Upgrade docker.io/rust to `1.76.0`

</details>

<details>
<summary>fix(deps): update rust crate async-std to 1.12.0</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/async-std-1.x`
  - Merge into: `main`
  - Upgrade [async-std](https://github.com/async-rs/async-std) to `1.12.0`

</details>

<details>
<summary>fix(deps): update rust crate base64 to 0.22.0</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/base64-0.x`
  - Merge into: `main`
  - Upgrade [base64](https://github.com/marshallpierce/rust-base64) to `0.22.0`

</details>

<details>
<summary>fix(deps): update rust crate clap to 2.34.0</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/clap-2.x`
  - Merge into: `main`
  - Upgrade [clap](https://github.com/clap-rs/clap) to `2.34.0`

</details>

<details>
<summary>fix(deps): update rust crate colored to 2.1.0</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/colored-2.x`
  - Merge into: `main`
  - Upgrade [colored](https://github.com/mackwic/colored) to `2.1.0`

</details>

<details>
<summary>fix(deps): update rust crate derive_builder to 0.20.0</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/derive_builder-0.x`
  - Merge into: `main`
  - Upgrade [derive_builder](https://github.com/colin-kiegel/rust-derive-builder) to `0.20.0`

</details>

<details>
<summary>fix(deps): update rust crate epub-builder to 0.7.4</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/epub-builder-0.x`
  - Merge into: `main`
  - Upgrade [epub-builder](https://github.com/lise-henry/epub-builder) to `0.7.4`

</details>

<details>
<summary>fix(deps): update rust crate flexi_logger to 0.27.4</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/flexi_logger-0.x`
  - Merge into: `main`
  - Upgrade [flexi_logger](https://github.com/emabee/flexi_logger) to `0.27.4`

</details>

<details>
<summary>fix(deps): update rust crate html5ever to 0.26.0</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/html5ever-0.x`
  - Merge into: `main`
  - Upgrade [html5ever](https://github.com/servo/html5ever) to `0.26.0`

</details>

<details>
<summary>fix(deps): update rust crate indicatif to 0.17.8</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/indicatif-0.x`
  - Merge into: `main`
  - Upgrade [indicatif](https://github.com/console-rs/indicatif) to `0.17.8`

</details>

<details>
<summary>fix(deps): update rust crate itertools to 0.12.1</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/itertools-0.x`
  - Merge into: `main`
  - Upgrade [itertools](https://github.com/rust-itertools/itertools) to `0.12.1`

</details>

<details>
<summary>fix(deps): update rust crate regex to 1.10.3</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/regex-1.x`
  - Merge into: `main`
  - Upgrade [regex](https://github.com/rust-lang/regex) to `1.10.3`

</details>

<details>
<summary>fix(deps): update rust crate surf to 2.3.2</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/surf-2.x`
  - Merge into: `main`
  - Upgrade [surf](https://github.com/http-rs/surf) to `2.3.2`

</details>

<details>
<summary>fix(deps): update rust crate url to 2.5.0</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/url-2.x`
  - Merge into: `main`
  - Upgrade [url](https://github.com/servo/rust-url) to `2.5.0`

</details>

<details>
<summary>fix(deps): update rust crate clap to v4</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/clap-4.x`
  - Merge into: `main`
  - Upgrade [clap](https://github.com/clap-rs/clap) to `4.5.2`

</details>

<details>
<summary>fix(deps): update rust crate comfy-table to v7</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/comfy-table-7.x`
  - Merge into: `main`
  - Upgrade [comfy-table](https://github.com/nukesor/comfy-table) to `7.1.0`

</details>

<details>
<summary>fix(deps): update rust crate directories to v5</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/directories-5.x`
  - Merge into: `main`
  - Upgrade [directories](https://github.com/soc/directories-rs) to `5.0.1`

</details>

<br />

🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or overwhelm the project. See docs for `prhourlylimit` for details.

---

 Got questions? Check out Renovate's [Docs](https://docs.renovatebot.com/), particularly the Getting Started section.
If you need any further assistance then you can also [request help here](https://github.com/renovatebot/renovate/discussions).

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).

<!--renovate-config-hash:e80b4e42a3043bc12fa0640db4bac392d2bf770acf841360d7c8ceeeac2ec1a9-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #7
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-03-10 09:47:51 +00:00
d9553b6b54 chore: Unpin rust version (#6)
Closes kemitix/paperoni#2

Reviewed-on: #6
Co-authored-by: Paul Campbell <pcampbell@kemitix.net>
Co-committed-by: Paul Campbell <pcampbell@kemitix.net>
2024-03-10 09:47:51 +00:00
85e6cb95d0 chore: Add Woodpecker CI config (#5)
Closes kemitix/paperoni#3

Reviewed-on: #5
Co-authored-by: Paul Campbell <pcampbell@kemitix.net>
Co-committed-by: Paul Campbell <pcampbell@kemitix.net>
2024-03-10 09:47:46 +00:00
13 changed files with 866 additions and 890 deletions

20
.woodpecker.yml Normal file
View file

@ -0,0 +1,20 @@
steps:
build:
when:
- event: cron
- event: push
branch: main
- event: pull_request
image: docker.io/rust:latest
commands:
- apt-get install libssl-dev
- cargo build
test:
when:
- event: cron
- event: push
branch: main
- event: pull_request
image: docker.io/rust:latest
commands:
- cargo test

1429
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -13,26 +13,27 @@ readme = "README.md"
[dependencies] [dependencies]
# atty = "0.2.14" # atty = "0.2.14"
async-std = "1.10.0" async-std = "1.12.0"
base64 = "0.13.0" base64 = "0.22.0"
chrono = "0.4.19" chrono = "0.4.38"
clap = { version = "2.34.0", features = ["yaml"] } clap = { version = "2.34.0", features = ["yaml"] }
colored = "2.0.0" colored = "2.1.0"
comfy-table = "3.0.0" comfy-table = "7.1.1"
derive_builder = "0.10.2" derive_builder = "0.20.0"
directories = "3.0.2" directories = "5.0.1"
epub-builder = "0.4.10" epub-builder = "0.7.4"
flexi_logger = "0.22.2" eyre = "0.6.12"
futures = "0.3.19" flexi_logger = "0.29.0"
futures = "0.3.30"
html5ever = "0.25.1" html5ever = "0.25.1"
indicatif = "0.16.2" indicatif = "0.17.8"
itertools = "0.10.3" itertools = "0.13.0"
kuchiki = "0.8.1" kuchiki = "0.8.1"
lazy_static = "1.4.0" lazy_static = "1.4.0"
log = "0.4.14" log = "0.4.21"
md5 = "0.7.0" md5 = "0.7.0"
regex = "1.5.4" openssl-sys = "0.9.102"
serde = "1.0.136" regex = "1.11.0"
surf = "2.3.2" surf = "2.3.2"
thiserror = "1.0.30" thiserror = "1.0.59"
url = "2.2.2" url = "2.5.0"

10
renovate.json Normal file
View file

@ -0,0 +1,10 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"],
"packageRules": [
{
"matchManagers": ["cargo"],
"rangeStrategy": "replace"
}
]
}

View file

@ -1 +0,0 @@
1.57.0

View file

@ -30,7 +30,11 @@ pub fn generate_epubs(
let enabled_bar = ProgressBar::new(articles.len() as u64); let enabled_bar = ProgressBar::new(articles.len() as u64);
let style = ProgressStyle::default_bar().template( let style = ProgressStyle::default_bar().template(
"{spinner:.cyan} [{elapsed_precise}] {bar:40.white} {:>8} epub {pos}/{len:7} {msg:.green}", "{spinner:.cyan} [{elapsed_precise}] {bar:40.white} {:>8} epub {pos}/{len:7} {msg:.green}",
); ).map_err(|e| {
let mut paperoni_err: PaperoniError = e.into();
paperoni_err.set_article_source("progress bar");
vec![paperoni_err]
})?;
enabled_bar.set_style(style); enabled_bar.set_style(style);
if !articles.is_empty() { if !articles.is_empty() {
enabled_bar.set_message("Generating epubs"); enabled_bar.set_message("Generating epubs");
@ -249,10 +253,7 @@ fn replace_escaped_characters(value: &str) -> String {
.replace(">", "&gt;") .replace(">", "&gt;")
} }
fn add_stylesheets<T: epub_builder::Zip>( fn add_stylesheets(epub: &mut EpubBuilder<ZipLibrary>, app_config: &AppConfig) -> eyre::Result<()> {
epub: &mut EpubBuilder<T>,
app_config: &AppConfig,
) -> Result<(), epub_builder::Error> {
let body_stylesheet: &[u8] = include_bytes!("./assets/body.min.css"); let body_stylesheet: &[u8] = include_bytes!("./assets/body.min.css");
let header_stylesheet: &[u8] = include_bytes!("./assets/headers.min.css"); let header_stylesheet: &[u8] = include_bytes!("./assets/headers.min.css");
match app_config.css_config { match app_config.css_config {

View file

@ -15,6 +15,8 @@ pub enum ErrorKind {
UTF8Error(String), UTF8Error(String),
#[error("[ReadabilityError]: {0}")] #[error("[ReadabilityError]: {0}")]
ReadabilityError(String), ReadabilityError(String),
#[error("[TemplateError]: {0}")]
TemplateError(String),
} }
#[derive(Error, Debug)] #[derive(Error, Debug)]
@ -98,9 +100,9 @@ impl From<ErrorKind> for PaperoniError {
} }
} }
impl From<epub_builder::Error> for PaperoniError { impl From<eyre::Error> for PaperoniError {
fn from(err: epub_builder::Error) -> Self { fn from(err: eyre::Error) -> Self {
PaperoniError::with_kind(ErrorKind::EpubError(err.description().to_owned())) PaperoniError::with_kind(ErrorKind::EpubError(err.to_string()))
} }
} }
@ -128,6 +130,12 @@ impl From<std::str::Utf8Error> for PaperoniError {
} }
} }
impl From<indicatif::style::TemplateError> for PaperoniError {
fn from(err: indicatif::style::TemplateError) -> Self {
PaperoniError::with_kind(ErrorKind::TemplateError(err.to_string()))
}
}
#[derive(Debug, Error)] #[derive(Debug, Error)]
pub enum LogError { pub enum LogError {
#[error(transparent)] #[error(transparent)]

View file

@ -1,11 +1,8 @@
use std::collections::BTreeMap;
use html5ever::{LocalName, Namespace, QualName};
use itertools::Itertools; use itertools::Itertools;
use kuchiki::{traits::*, NodeRef}; use kuchiki::{traits::*, NodeRef};
use crate::errors::PaperoniError; use crate::errors::PaperoniError;
use crate::moz_readability::{MetaData, Readability, HTML_NS}; use crate::moz_readability::{MetaData, Readability};
/// A tuple of the url and an Option of the resource's MIME type /// A tuple of the url and an Option of the resource's MIME type
pub type ResourceInfo = (String, Option<String>); pub type ResourceInfo = (String, Option<String>);
@ -32,7 +29,6 @@ impl Article {
/// the source of the content /// the source of the content
pub fn extract_content(&mut self) -> Result<(), PaperoniError> { pub fn extract_content(&mut self) -> Result<(), PaperoniError> {
self.readability.parse(&self.url)?; self.readability.parse(&self.url)?;
self.reinsert_title_heading();
if let Some(article_node_ref) = &self.readability.article_node { if let Some(article_node_ref) = &self.readability.article_node {
let template = r#" let template = r#"
<!DOCTYPE html> <!DOCTYPE html>
@ -78,20 +74,6 @@ impl Article {
) )
} }
fn reinsert_title_heading(&mut self) {
if let Some(article_node_ref) = &self.readability.article_node {
if let Ok(article_root_ref) = article_node_ref.select_first("div#readability-page-1") {
let article_root_elem = article_root_ref.as_node();
let h1_elem = NodeRef::new_element(
QualName::new(None, Namespace::from(HTML_NS), LocalName::from("h1")),
BTreeMap::new(),
);
h1_elem.append(NodeRef::new_text(self.readability.metadata.title()));
article_root_elem.prepend(h1_elem);
};
}
}
pub fn metadata(&self) -> &MetaData { pub fn metadata(&self) -> &MetaData {
&self.readability.metadata &self.readability.metadata
} }

View file

@ -4,7 +4,8 @@ use std::{
path::Path, path::Path,
}; };
use base64::encode; use base64::prelude::*;
use comfy_table::{Attribute, Cell, CellAlignment, Color, ContentArrangement, Table}; use comfy_table::{Attribute, Cell, CellAlignment, Color, ContentArrangement, Table};
use html5ever::{LocalName, Namespace, QualName}; use html5ever::{LocalName, Namespace, QualName};
use indicatif::{ProgressBar, ProgressStyle}; use indicatif::{ProgressBar, ProgressStyle};
@ -43,7 +44,11 @@ pub fn generate_html_exports(
let enabled_bar = ProgressBar::new(articles.len() as u64); let enabled_bar = ProgressBar::new(articles.len() as u64);
let style = ProgressStyle::default_bar().template( let style = ProgressStyle::default_bar().template(
"{spinner:.cyan} [{elapsed_precise}] {bar:40.white} {:>8} html {pos}/{len:7} {msg:.green}", "{spinner:.cyan} [{elapsed_precise}] {bar:40.white} {:>8} html {pos}/{len:7} {msg:.green}",
); ).map_err(|e| {
let mut paperoni_err: PaperoniError = e.into();
paperoni_err.set_article_source("progress bar");
vec![paperoni_err]
})?;
enabled_bar.set_style(style); enabled_bar.set_style(style);
if !articles.is_empty() { if !articles.is_empty() {
enabled_bar.set_message("Generating html files"); enabled_bar.set_message("Generating html files");
@ -267,7 +272,7 @@ fn update_imgs_base64(article: &Article) -> Result<(), std::io::Error> {
let img_base64_str = format!( let img_base64_str = format!(
"data:image:{};base64,{}", "data:image:{};base64,{}",
mime_type.as_deref().unwrap_or("image/*"), mime_type.as_deref().unwrap_or("image/*"),
encode(img_bytes) BASE64_STANDARD.encode(img_bytes)
); );
let img_elems = article let img_elems = article

View file

@ -5,7 +5,6 @@ use futures::StreamExt;
use indicatif::ProgressBar; use indicatif::ProgressBar;
use log::warn; use log::warn;
use log::{debug, info}; use log::{debug, info};
use serde::{Deserialize, Serialize};
use url::Url; use url::Url;
use crate::cli::AppConfig; use crate::cli::AppConfig;
@ -23,54 +22,9 @@ pub fn download(
let urls_iter = app_config.urls.iter().map(|url| fetch_html(url)); let urls_iter = app_config.urls.iter().map(|url| fetch_html(url));
let mut responses = stream::from_iter(urls_iter).buffered(app_config.max_conn); let mut responses = stream::from_iter(urls_iter).buffered(app_config.max_conn);
let mut articles = Vec::new(); let mut articles = Vec::new();
// Collect all urls that couldn't extract here
// let mut retry_with_paperteer: Vec<String> = Vec::new();
while let Some(fetch_result) = responses.next().await { while let Some(fetch_result) = responses.next().await {
match fetch_result { match fetch_result {
Ok((url, html)) => { Ok((url, html)) => {
match extract_and_download_imgs(
&url,
html,
bar,
partial_downloads,
&mut articles,
)
.await
{
Ok(_) => bar.inc(1),
// All errors are pushed into here since they're readability issues.
Err(e) => errors.push(e),
}
// Outside the stream, make a new one to retry with paperteer
}
Err(e) => errors.push(e),
}
}
// if !retry_with_paperteer.is_empty() {
// fetch_html_from_paperteer(
// retry_with_paperteer,
// app_config,
// bar,
// partial_downloads,
// errors,
// &mut articles,
// )
// .await
// .unwrap();
// }
articles
})
}
async fn extract_and_download_imgs<'a>(
url: &str,
html: String,
bar: &ProgressBar,
partial_downloads: &mut Vec<PartialDownload>,
articles: &mut Vec<Article>,
) -> Result<(), PaperoniError> {
debug!("Extracting {}", &url); debug!("Extracting {}", &url);
let mut extractor = Article::from_html(&html, &url); let mut extractor = Article::from_html(&html, &url);
bar.set_message("Extracting..."); bar.set_message("Extracting...");
@ -78,14 +32,16 @@ async fn extract_and_download_imgs<'a>(
Ok(_) => { Ok(_) => {
extractor.extract_img_urls(); extractor.extract_img_urls();
if let Err(img_errors) = if let Err(img_errors) =
download_images(&mut extractor, &Url::parse(&url).unwrap(), &bar).await download_images(&mut extractor, &Url::parse(&url).unwrap(), &bar)
.await
{ {
partial_downloads.push(PartialDownload::new(&url, extractor.metadata().title())); partial_downloads
.push(PartialDownload::new(&url, extractor.metadata().title()));
warn!( warn!(
"{} image{} failed to download for {}", "{} image{} failed to download for {}",
img_errors.len(), img_errors.len(),
if img_errors.len() > 1 { "s" } else { "" }, if img_errors.len() > 1 { "s" } else { "" },
&url url
); );
for img_error in img_errors { for img_error in img_errors {
warn!( warn!(
@ -96,87 +52,19 @@ async fn extract_and_download_imgs<'a>(
} }
} }
articles.push(extractor); articles.push(extractor);
Ok(())
} }
Err(mut e) => { Err(mut e) => {
e.set_article_source(&url); e.set_article_source(&url);
Err(e) errors.push(e);
} }
} }
}
#[derive(Serialize, Deserialize)]
struct PaperteerBody {
urls: Vec<String>,
}
impl PaperteerBody {
fn new(urls: Vec<String>) -> Self {
PaperteerBody { urls }
} }
}
#[derive(Serialize, Deserialize)]
struct PaperteerItem {
url: String,
response: String,
html: String,
}
#[derive(Serialize, Deserialize)]
struct PaperteerResponse {
data: Vec<PaperteerItem>,
}
// TODO: Change signature to simply take a vec of urls and return a vec of urls with either html or an error
// This also means that extracting and downloading imgs should be handled externally
async fn _fetch_html_from_paperteer(
urls: Vec<String>,
_app_config: &AppConfig,
bar: &ProgressBar,
partial_downloads: &mut Vec<PartialDownload>,
errors: &mut Vec<PaperoniError>,
articles: &mut Vec<Article>,
) -> Result<(), ()> {
// Get the paperteer url
let render_endpoint = "/api/render";
let paperteer_url = url::Url::parse("http://localhost:3000")
.unwrap()
.join(render_endpoint)
.unwrap();
// Build request body with urls
let urls_str = urls.into_iter().map(|url| url.to_string()).collect();
let body = PaperteerBody::new(urls_str);
// Send to the paperteer url
let mut res = surf::post(paperteer_url)
.body(surf::Body::from_json(&body).unwrap())
.await
.unwrap();
// Receive the json response
// TODO: Check for body response
let PaperteerResponse { data } = res.body_json().await.unwrap();
// For each url, extract the article and images
for item in data {
let PaperteerItem {
html,
url,
response,
} = item;
if response == "ok" {
// Run the extract and download fn
match extract_and_download_imgs(&url, html, bar, partial_downloads, articles).await {
Ok(_) => bar.inc(1),
Err(e) => errors.push(e), Err(e) => errors.push(e),
} }
} else { bar.inc(1);
errors.push(crate::errors::ErrorKind::HTTPError("Paperteer failed".into()).into());
} }
} articles
Ok(()) })
} }
pub async fn fetch_html(url: &str) -> Result<HTMLResource, PaperoniError> { pub async fn fetch_html(url: &str) -> Result<HTMLResource, PaperoniError> {

View file

@ -2,7 +2,7 @@ use std::fs;
use chrono::{DateTime, Local}; use chrono::{DateTime, Local};
use colored::*; use colored::*;
use comfy_table::presets::UTF8_HORIZONTAL_BORDERS_ONLY; use comfy_table::presets::UTF8_HORIZONTAL_ONLY;
use comfy_table::{Cell, CellAlignment, ContentArrangement, Table}; use comfy_table::{Cell, CellAlignment, ContentArrangement, Table};
use flexi_logger::{FileSpec, LevelFilter}; use flexi_logger::{FileSpec, LevelFilter};
use log::error; use log::error;
@ -38,7 +38,7 @@ pub fn display_summary(
println!("\n{}", "Partially failed downloads".yellow().bold()); println!("\n{}", "Partially failed downloads".yellow().bold());
let mut table_partial = Table::new(); let mut table_partial = Table::new();
table_partial table_partial
.load_preset(UTF8_HORIZONTAL_BORDERS_ONLY) .load_preset(UTF8_HORIZONTAL_ONLY)
.set_header(vec![ .set_header(vec![
Cell::new("Link").set_alignment(CellAlignment::Center), Cell::new("Link").set_alignment(CellAlignment::Center),
Cell::new("Title").set_alignment(CellAlignment::Center), Cell::new("Title").set_alignment(CellAlignment::Center),
@ -55,7 +55,7 @@ pub fn display_summary(
println!("\n{}", "Failed article downloads".bright_red().bold()); println!("\n{}", "Failed article downloads".bright_red().bold());
let mut table_failed = Table::new(); let mut table_failed = Table::new();
table_failed table_failed
.load_preset(UTF8_HORIZONTAL_BORDERS_ONLY) .load_preset(UTF8_HORIZONTAL_ONLY)
.set_header(vec![ .set_header(vec![
Cell::new("Link").set_alignment(CellAlignment::Center), Cell::new("Link").set_alignment(CellAlignment::Center),
Cell::new("Reason").set_alignment(CellAlignment::Center), Cell::new("Reason").set_alignment(CellAlignment::Center),

View file

@ -2,9 +2,10 @@
extern crate lazy_static; extern crate lazy_static;
use std::process::exit; use std::process::exit;
use std::time::Duration;
use colored::Colorize; use colored::Colorize;
use comfy_table::presets::{UTF8_FULL, UTF8_HORIZONTAL_BORDERS_ONLY}; use comfy_table::presets::{UTF8_FULL, UTF8_HORIZONTAL_ONLY};
use comfy_table::{ContentArrangement, Table}; use comfy_table::{ContentArrangement, Table};
use http::download; use http::download;
use indicatif::{ProgressBar, ProgressStyle}; use indicatif::{ProgressBar, ProgressStyle};
@ -25,6 +26,8 @@ use epub::generate_epubs;
use html::generate_html_exports; use html::generate_html_exports;
use logs::display_summary; use logs::display_summary;
use crate::errors::PaperoniError;
fn main() { fn main() {
let app_config = match cli::AppConfig::init_with_cli() { let app_config = match cli::AppConfig::init_with_cli() {
Ok(app_config) => app_config, Ok(app_config) => app_config,
@ -58,9 +61,15 @@ fn run(app_config: AppConfig) {
let enabled_bar = ProgressBar::new(app_config.urls.len() as u64); let enabled_bar = ProgressBar::new(app_config.urls.len() as u64);
let style = ProgressStyle::default_bar().template( let style = ProgressStyle::default_bar().template(
"{spinner:.cyan} [{elapsed_precise}] {bar:40.white} {:>8} link {pos}/{len:7} {msg:.yellow/white}", "{spinner:.cyan} [{elapsed_precise}] {bar:40.white} {:>8} link {pos}/{len:7} {msg:.yellow/white}",
); ).map_err(|e| {
let mut paperoni_err: PaperoniError = e.into();
paperoni_err.set_article_source("progress bar");
vec![paperoni_err]
});
if let Ok(style) = style {
enabled_bar.set_style(style); enabled_bar.set_style(style);
enabled_bar.enable_steady_tick(500); }
enabled_bar.enable_steady_tick(Duration::from_millis(500));
enabled_bar enabled_bar
}; };
@ -70,7 +79,7 @@ fn run(app_config: AppConfig) {
let mut successful_articles_table = Table::new(); let mut successful_articles_table = Table::new();
successful_articles_table successful_articles_table
.load_preset(UTF8_FULL) .load_preset(UTF8_FULL)
.load_preset(UTF8_HORIZONTAL_BORDERS_ONLY) .load_preset(UTF8_HORIZONTAL_ONLY)
.set_content_arrangement(ContentArrangement::Dynamic); .set_content_arrangement(ContentArrangement::Dynamic);
match app_config.export_type { match app_config.export_type {

View file

@ -17,7 +17,7 @@ const FLAG_STRIP_UNLIKELYS: u32 = 0x1;
const FLAG_WEIGHT_CLASSES: u32 = 0x2; const FLAG_WEIGHT_CLASSES: u32 = 0x2;
const FLAG_CLEAN_CONDITIONALLY: u32 = 0x4; const FLAG_CLEAN_CONDITIONALLY: u32 = 0x4;
const READABILITY_SCORE: &'static str = "readability-score"; const READABILITY_SCORE: &'static str = "readability-score";
pub const HTML_NS: &'static str = "http://www.w3.org/1999/xhtml"; const HTML_NS: &'static str = "http://www.w3.org/1999/xhtml";
// TODO: Change to HashSet // TODO: Change to HashSet
const PHRASING_ELEMS: [&str; 39] = [ const PHRASING_ELEMS: [&str; 39] = [
"abbr", "audio", "b", "bdo", "br", "button", "cite", "code", "data", "datalist", "dfn", "em", "abbr", "audio", "b", "bdo", "br", "button", "cite", "code", "data", "datalist", "dfn", "em",