Compare commits

..

289 Commits

Author SHA1 Message Date
manuelcortez b37edc3712 disable action buttons on filter manager when reloading data 2025-03-07 13:05:37 -06:00
manuelcortez 9ff772f098 cleaned filter dialogs. Added filter management (mostly done) 2025-03-07 13:01:08 -06:00
manuelcortez 00e5766f90 Bind Filter create function to menu bar 2025-03-07 10:13:34 -06:00
manuelcortez 3f72185817 Add filter creation within TWBlue 2025-03-07 10:13:13 -06:00
manuelcortez 38fe9c149b Added controller to add and update filters 2025-03-05 13:12:22 -06:00
manuelcortez cdee0a620c Added filters dialog 2025-03-05 13:12:04 -06:00
manuelcortez fccabf6eb5 Respect filters also when getting previous items 2025-03-03 12:00:33 -06:00
manuelcortez 3dae674c4e for 'warn' filtered posts, parse and display a modified text on them (we must add a way to display those later) 2025-03-03 11:59:14 -06:00
manuelcortez c76134b064 Avoid adding hidden posts by filters to the list of objects 2025-03-03 11:58:11 -06:00
manuelcortez 284c2bd87f added functions to evaluate filter and retrieve context from a buffer 2025-03-03 11:57:37 -06:00
manuelcortez 543295fc21 Updated changelog 2025-03-03 10:20:37 -06:00
José Manuel Delicado 894cc24eca Merge pull request #760 from MCV-Software/dependabot/pip/mastodon-py-2.0.1
Bump mastodon-py from 2.0.0 to 2.0.1
2025-03-03 07:47:07 +01:00
José Manuel Delicado 49849605c4 Merge pull request #761 from MCV-Software/dependabot/pip/pytest-8.3.5
Bump pytest from 8.3.4 to 8.3.5
2025-03-03 07:46:34 +01:00
dependabot[bot] fc18e71f40 Bump pytest from 8.3.4 to 8.3.5
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.4 to 8.3.5.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.4...8.3.5)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 06:45:45 +00:00
dependabot[bot] 595458aa46 Bump mastodon-py from 2.0.0 to 2.0.1
Bumps [mastodon-py](https://github.com/halcy/Mastodon.py) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/halcy/Mastodon.py/releases)
- [Changelog](https://github.com/halcy/Mastodon.py/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/halcy/Mastodon.py/compare/2.0.0...v2.0.1)

---
updated-dependencies:
- dependency-name: mastodon-py
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 06:45:40 +00:00
manuelcortez 87e1f7eb7a Updated translation catalogs 2025-03-02 00:55:47 +00:00
José Manuel Delicado eefe2ad454 Merge pull request #759 from MCV-Software/dependabot/pip/decorator-5.2.1
Update translation files / update_catalogs (push) Has been cancelled
Bump decorator from 5.1.1 to 5.2.1
2025-02-24 20:22:55 +01:00
dependabot[bot] 928f207668 Bump decorator from 5.1.1 to 5.2.1
Bumps [decorator](https://github.com/micheles/decorator) from 5.1.1 to 5.2.1.
- [Release notes](https://github.com/micheles/decorator/releases)
- [Changelog](https://github.com/micheles/decorator/blob/5.2.1/CHANGES.md)
- [Commits](https://github.com/micheles/decorator/compare/5.1.1...5.2.1)

---
updated-dependencies:
- dependency-name: decorator
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 19:21:52 +00:00
manuelcortez 7c75c2ddec Updated translation catalogs 2025-02-23 00:55:49 +00:00
manuelcortez 469a398db7 Merge pull request #755 from MCV-Software/dependabot/pip/mastodon-py-2.0.0
Update translation files / update_catalogs (push) Failing after 1m46s
Bump mastodon-py from 1.8.1 to 2.0.0
2025-02-18 08:40:39 -06:00
dependabot[bot] 5f1671ac54 Bump mastodon-py from 1.8.1 to 2.0.0
Bumps [mastodon-py](https://github.com/halcy/Mastodon.py) from 1.8.1 to 2.0.0.
- [Release notes](https://github.com/halcy/Mastodon.py/releases)
- [Changelog](https://github.com/halcy/Mastodon.py/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/halcy/Mastodon.py/compare/1.8.1...2.0.0)

---
updated-dependencies:
- dependency-name: mastodon-py
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 06:31:23 +00:00
José Manuel Delicado 67728021d2 Merge pull request #756 from MCV-Software/dependabot/pip/coverage-7.6.12
Bump coverage from 7.6.11 to 7.6.12
2025-02-18 07:30:12 +01:00
José Manuel Delicado 2eaf5bf6da Merge pull request #757 from MCV-Software/dependabot/pip/psutil-7.0.0
Bump psutil from 6.1.1 to 7.0.0
2025-02-18 07:29:51 +01:00
José Manuel Delicado 12b7c9de89 Merge pull request #758 from MCV-Software/dependabot/pip/numpy-2.2.3
Bump numpy from 2.2.2 to 2.2.3
2025-02-18 07:28:59 +01:00
dependabot[bot] fbd0adf292 Bump numpy from 2.2.2 to 2.2.3
Bumps [numpy](https://github.com/numpy/numpy) from 2.2.2 to 2.2.3.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v2.2.2...v2.2.3)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-17 23:51:24 +00:00
dependabot[bot] 38bd99c2f1 Bump psutil from 6.1.1 to 7.0.0
Bumps [psutil](https://github.com/giampaolo/psutil) from 6.1.1 to 7.0.0.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-6.1.1...release-7.0.0)

---
updated-dependencies:
- dependency-name: psutil
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-17 23:51:13 +00:00
dependabot[bot] 879a251209 Bump coverage from 7.6.11 to 7.6.12
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.11 to 7.6.12.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.6.11...7.6.12)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-17 23:51:09 +00:00
manuelcortez 976703aa36 Updated translation catalogs 2025-02-16 00:55:48 +00:00
José Manuel Delicado 95042dca93 Merge pull request #754 from MCV-Software/dependabot/pip/cx-freeze-7.2.10
Update translation files / update_catalogs (push) Has been cancelled
Bump cx-freeze from 7.2.9 to 7.2.10
2025-02-11 07:32:20 +01:00
dependabot[bot] 0a46403f6c Bump cx-freeze from 7.2.9 to 7.2.10
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.2.9 to 7.2.10.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.2.9...7.2.10)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 06:31:36 +00:00
José Manuel Delicado f958e47265 Merge pull request #753 from MCV-Software/dependabot/pip/coverage-7.6.11
Bump coverage from 7.6.10 to 7.6.11
2025-02-11 07:30:20 +01:00
dependabot[bot] 831ea5225e Bump coverage from 7.6.10 to 7.6.11
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.10 to 7.6.11.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.6.10...7.6.11)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 23:40:59 +00:00
manuelcortez 5a7cf68858 Updated translation catalogs 2025-02-09 00:55:39 +00:00
manuelcortez 6219b082de Merge pull request #750 from MCV-Software/dependabot/pip/attrs-25.1.0
Update translation files / update_catalogs (push) Failing after 47s
Bump attrs from 24.3.0 to 25.1.0
2025-02-03 18:46:21 -06:00
manuelcortez 321079a639 Merge pull request #751 from MCV-Software/dependabot/pip/cx-freeze-7.2.9
Bump cx-freeze from 7.2.8 to 7.2.9
2025-02-03 18:45:55 -06:00
manuelcortez 425860de98 Merge pull request #752 from MCV-Software/dependabot/pip/certifi-2025.1.31
Bump certifi from 2024.12.14 to 2025.1.31
2025-02-03 18:45:06 -06:00
dependabot[bot] fb85aac231 Bump certifi from 2024.12.14 to 2025.1.31
Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.12.14 to 2025.1.31.
- [Commits](https://github.com/certifi/python-certifi/compare/2024.12.14...2025.01.31)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 23:44:36 +00:00
dependabot[bot] 86adc942ca Bump cx-freeze from 7.2.8 to 7.2.9
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.2.8 to 7.2.9.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.2.8...7.2.9)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 23:44:32 +00:00
manuelcortez 1ec37d5a1c Updated translation catalogs 2025-02-02 00:55:40 +00:00
dependabot[bot] bae927411f Bump attrs from 24.3.0 to 25.1.0
Bumps [attrs](https://github.com/sponsors/hynek) from 24.3.0 to 25.1.0.
- [Commits](https://github.com/sponsors/hynek/commits)

---
updated-dependencies:
- dependency-name: attrs
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 23:36:54 +00:00
manuelcortez 528146310a Updated translation catalogs
Update translation files / update_catalogs (push) Has been cancelled
2025-01-26 00:55:33 +00:00
José Manuel Delicado 0d2e256254 Merge pull request #747 from MCV-Software/dependabot/pip/numpy-2.2.2
Update translation files / update_catalogs (push) Has been cancelled
2025-01-23 00:12:44 +01:00
José Manuel Delicado b425462cc6 Merge pull request #748 from MCV-Software/dependabot/pip/deepl-1.21.0 2025-01-23 00:12:14 +01:00
José Manuel Delicado 2ad93154de Merge pull request #749 from MCV-Software/dependabot/pip/importlib-metadata-8.6.1 2025-01-23 00:11:42 +01:00
dependabot[bot] e905040c68 Bump importlib-metadata from 8.5.0 to 8.6.1
Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 8.5.0 to 8.6.1.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.5.0...v8.6.1)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 23:15:16 +00:00
dependabot[bot] db53593fef Bump deepl from 1.20.0 to 1.21.0
Bumps [deepl](https://github.com/DeepLcom/deepl-python) from 1.20.0 to 1.21.0.
- [Release notes](https://github.com/DeepLcom/deepl-python/releases)
- [Changelog](https://github.com/DeepLcom/deepl-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DeepLcom/deepl-python/compare/v1.20.0...v1.21.0)

---
updated-dependencies:
- dependency-name: deepl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 23:15:12 +00:00
dependabot[bot] 35bb5282bc Bump numpy from 2.2.1 to 2.2.2
Bumps [numpy](https://github.com/numpy/numpy) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v2.2.1...v2.2.2)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 23:15:09 +00:00
manuelcortez 608f2a248d Updated translation catalogs 2025-01-19 00:55:42 +00:00
manuelcortez 2525e5ca0d Updated translation catalogs
Update translation files / update_catalogs (push) Has been cancelled
2025-01-12 00:55:55 +00:00
José Manuel Delicado 5c014bcb07 Merge pull request #745 from MCV-Software/dependabot/pip/pillow-11.1.0
Bump pillow from 11.0.0 to 11.1.0
2025-01-07 01:12:50 +01:00
José Manuel Delicado f81e31529d Merge pull request #746 from MCV-Software/dependabot/pip/cx-freeze-7.2.8
Bump cx-freeze from 7.2.7 to 7.2.8
2025-01-07 01:12:36 +01:00
dependabot[bot] f874fb3f81 Bump cx-freeze from 7.2.7 to 7.2.8
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.2.7 to 7.2.8.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.2.7...7.2.8)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-06 23:34:24 +00:00
dependabot[bot] ca19afe3a0 Bump pillow from 11.0.0 to 11.1.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 11.0.0 to 11.1.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/11.0.0...11.1.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-06 23:34:13 +00:00
manuelcortez 930c0d6529 Updated translation catalogs
Update translation files / update_catalogs (push) Has been cancelled
2025-01-05 00:55:50 +00:00
manuelcortez a84305b6d3 doc: updated changelog 2024-12-31 19:10:48 -06:00
manuelcortez 6b97c5123f mastodon: Language should be automatically suggested for posts during creation, replies or when recovering from an error 2024-12-31 18:51:00 -06:00
manuelcortez 0322939cba mastodon: Adds language selector on post dialog. Language for posts will be set via account's default language, post language or via TWBlue's user language 2024-12-31 18:48:27 -06:00
manuelcortez 8ed80da82c mastodon: Set API version at 4.3.2. Retrieves instance supported languages upon startup. 2024-12-31 18:44:04 -06:00
manuelcortez 90acd9ebea Revert lief to v0.15.1 due to cx_freeze requirements 2024-12-30 23:01:49 -06:00
José Manuel Delicado 58152ef3dc Merge pull request #742 from MCV-Software/dependabot/pip/lief-0.16.1
Bump lief from 0.16.0 to 0.16.1
2024-12-31 00:44:06 +01:00
José Manuel Delicado b433f0a113 Merge pull request #743 from MCV-Software/dependabot/pip/charset-normalizer-3.4.1
Bump charset-normalizer from 3.4.0 to 3.4.1
2024-12-31 00:43:50 +01:00
José Manuel Delicado 2192675071 Merge pull request #744 from MCV-Software/dependabot/pip/coverage-7.6.10
Bump coverage from 7.6.9 to 7.6.10
2024-12-31 00:43:31 +01:00
dependabot[bot] 000516678c Bump coverage from 7.6.9 to 7.6.10
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.9 to 7.6.10.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.6.9...7.6.10)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 23:41:54 +00:00
dependabot[bot] 1e382b55f1 Bump charset-normalizer from 3.4.0 to 3.4.1
Bumps [charset-normalizer](https://github.com/jawah/charset_normalizer) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/jawah/charset_normalizer/releases)
- [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jawah/charset_normalizer/compare/3.4.0...3.4.1)

---
updated-dependencies:
- dependency-name: charset-normalizer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 23:41:49 +00:00
dependabot[bot] 8a7b9e9368 Bump lief from 0.16.0 to 0.16.1
Bumps [lief](https://github.com/lief-project/LIEF) from 0.16.0 to 0.16.1.
- [Release notes](https://github.com/lief-project/LIEF/releases)
- [Commits](https://github.com/lief-project/LIEF/compare/0.16.0...0.16.1)

---
updated-dependencies:
- dependency-name: lief
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 23:41:41 +00:00
manuelcortez 26bede0b05 Updated translation catalogs 2024-12-29 00:55:53 +00:00
José Manuel Delicado 8a9d034d60 Merge pull request #740 from MCV-Software/dependabot/pip/numpy-2.2.1
Update translation files / update_catalogs (push) Has been cancelled
Bump numpy from 2.2.0 to 2.2.1
2024-12-23 09:23:28 +01:00
José Manuel Delicado 4a46896372 Merge pull request #739 from MCV-Software/dependabot/pip/urllib3-2.3.0
Bump urllib3 from 2.2.3 to 2.3.0
2024-12-23 09:22:54 +01:00
José Manuel Delicado 4352e1510d Merge pull request #738 from MCV-Software/dependabot/pip/psutil-6.1.1
Bump psutil from 6.1.0 to 6.1.1
2024-12-23 09:22:35 +01:00
dependabot[bot] c4728fbb34 Bump numpy from 2.2.0 to 2.2.1
Bumps [numpy](https://github.com/numpy/numpy) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v2.2.0...v2.2.1)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 08:22:03 +00:00
dependabot[bot] f82dc9b3b8 Bump urllib3 from 2.2.3 to 2.3.0
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.2.3 to 2.3.0.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.2.3...2.3.0)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 08:21:53 +00:00
dependabot[bot] 403e4c2719 Bump psutil from 6.1.0 to 6.1.1
Bumps [psutil](https://github.com/giampaolo/psutil) from 6.1.0 to 6.1.1.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-6.1.0...release-6.1.1)

---
updated-dependencies:
- dependency-name: psutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 08:21:46 +00:00
manuelcortez 2b7dbe0a2c Updated translation catalogs
Update translation files / update_catalogs (push) Has been cancelled
2024-12-22 00:55:54 +00:00
José Manuel Delicado 8b1744fe01 Merge pull request #736 from MCV-Software/dependabot/pip/six-1.17.0
Bump six from 1.16.0 to 1.17.0
2024-12-17 07:31:25 +01:00
José Manuel Delicado c21bb125b9 Merge pull request #737 from MCV-Software/dependabot/pip/lief-0.16.0
Bump lief from 0.15.1 to 0.16.0
2024-12-17 07:31:06 +01:00
dependabot[bot] 4ef3406a07 Bump lief from 0.15.1 to 0.16.0
Bumps [lief](https://github.com/lief-project/LIEF) from 0.15.1 to 0.16.0.
- [Release notes](https://github.com/lief-project/LIEF/releases)
- [Commits](https://github.com/lief-project/LIEF/compare/0.15.1...0.16.0)

---
updated-dependencies:
- dependency-name: lief
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 23:45:32 +00:00
dependabot[bot] 28954a4968 Bump six from 1.16.0 to 1.17.0
Bumps [six](https://github.com/benjaminp/six) from 1.16.0 to 1.17.0.
- [Changelog](https://github.com/benjaminp/six/blob/main/CHANGES)
- [Commits](https://github.com/benjaminp/six/compare/1.16.0...1.17.0)

---
updated-dependencies:
- dependency-name: six
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 23:45:22 +00:00
José Manuel Delicado 77bd3c8290 Merge pull request #735 from MCV-Software/dependabot/pip/attrs-24.3.0
Bump attrs from 24.2.0 to 24.3.0
2024-12-16 17:04:44 +01:00
José Manuel Delicado fba1854795 Merge pull request #734 from MCV-Software/dependabot/pip/coverage-7.6.9
Bump coverage from 7.6.8 to 7.6.9
2024-12-16 17:04:18 +01:00
José Manuel Delicado d21bf7c97d Merge pull request #733 from MCV-Software/dependabot/pip/numpy-2.2.0
Bump numpy from 2.1.3 to 2.2.0
2024-12-16 17:03:55 +01:00
José Manuel Delicado f2db08ad7f Merge pull request #732 from MCV-Software/dependabot/pip/types-python-dateutil-2.9.0.20241206
Bump types-python-dateutil from 2.9.0.20241003 to 2.9.0.20241206
2024-12-16 17:03:32 +01:00
José Manuel Delicado 14248ed0ff Merge pull request #731 from MCV-Software/dependabot/pip/certifi-2024.12.14
Bump certifi from 2024.8.30 to 2024.12.14
2024-12-16 17:03:13 +01:00
dependabot[bot] 7fdc48fbaf Bump attrs from 24.2.0 to 24.3.0
Bumps [attrs](https://github.com/sponsors/hynek) from 24.2.0 to 24.3.0.
- [Commits](https://github.com/sponsors/hynek/commits)

---
updated-dependencies:
- dependency-name: attrs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 16:01:53 +00:00
dependabot[bot] aec18b1bcf Bump coverage from 7.6.8 to 7.6.9
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.8 to 7.6.9.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.6.8...7.6.9)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 16:01:49 +00:00
dependabot[bot] b07bc39e57 Bump numpy from 2.1.3 to 2.2.0
Bumps [numpy](https://github.com/numpy/numpy) from 2.1.3 to 2.2.0.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v2.1.3...v2.2.0)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 16:01:41 +00:00
dependabot[bot] 78eee2c2d8 Bump types-python-dateutil from 2.9.0.20241003 to 2.9.0.20241206
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.9.0.20241003 to 2.9.0.20241206.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 16:01:31 +00:00
dependabot[bot] 8c170d12e2 Bump certifi from 2024.8.30 to 2024.12.14
Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.8.30 to 2024.12.14.
- [Commits](https://github.com/certifi/python-certifi/compare/2024.08.30...2024.12.14)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 16:01:28 +00:00
manuelcortez deb84ba2c4 Updated translation catalogs
Update translation files / update_catalogs (push) Failing after 43s
2024-12-15 00:56:03 +00:00
manuelcortez ea3286b452 Updated translation catalogs 2024-12-08 00:56:09 +00:00
José Manuel Delicado 84d2e4b4bd Merge pull request #730 from MCV-Software/dependabot/pip/pytest-8.3.4
Update translation files / update_catalogs (push) Has been cancelled
Bump pytest from 8.3.3 to 8.3.4
2024-12-03 00:38:16 +01:00
José Manuel Delicado e0ba68f1ed Merge pull request #729 from MCV-Software/dependabot/pip/cx-freeze-7.2.7
Bump cx-freeze from 7.2.6 to 7.2.7
2024-12-03 00:37:59 +01:00
dependabot[bot] 1ede045625 Bump pytest from 8.3.3 to 8.3.4
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.3 to 8.3.4.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.3...8.3.4)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 23:35:28 +00:00
dependabot[bot] b844fec832 Bump cx-freeze from 7.2.6 to 7.2.7
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.2.6 to 7.2.7.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.2.6...7.2.7)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 23:35:17 +00:00
manuelcortez 2ab15b3f6e Updated translation catalogs
Update translation files / update_catalogs (push) Has been cancelled
2024-12-01 00:56:19 +00:00
manuelcortez 6910809a97 Merge pull request #727 from Mohamed00/moreShortcutWorkage
Fixed more shortcut conflicts
2024-11-29 13:26:29 -06:00
Mohamed 0f19ac0a3f Missed some spots 2024-11-29 14:00:27 -05:00
Mohamed 05c397c252 Fixed more shortcut conflicts. Shortcut project complete, hopefully. Or something like that. 2024-11-29 13:53:04 -05:00
manuelcortez 329010e8e0 Merge pull request #725 from Mohamed00/fixShortcutConflict
Fixed shortcut conflict, added some more
2024-11-27 13:12:49 -06:00
Mohamed ec1b8a0df2 Better shortcut, add shortcuts for add followers and following to database checkboxes in scan dialog as well 2024-11-27 14:04:54 -05:00
Mohamed 9c3868bfc9 Fixed scan account keyboard shortcut which conflicted with the shortcut for the save button 2024-11-27 13:54:36 -05:00
manuelcortez 40689caef6 Mastodon: read long posts in GUI should be improved and work in all kinds of buffers 2024-11-26 23:23:36 -06:00
manuelcortez 021dd0ae52 Mastodon: Fixed 'read long posts in GUI'. Now it should work as expected 2024-11-26 22:57:21 -06:00
manuelcortez 002d0a5709 Mastodon: Allow to create user timelines from community local buffers 2024-11-26 22:44:38 -06:00
manuelcortez 10b17b2d6f Merge branch 'next-gen' of github.com:mcv-software/twblue into next-gen 2024-11-26 22:36:19 -06:00
manuelcortez 0f5a10c3fa Merge pull request #647 from Mohamed00/shortcutAllTheSettings
Added more keyboard shortcuts
2024-11-26 22:35:35 -06:00
manuelcortez 590d91c2d4 Merge pull request #647 from Mohamed00/shortcutAllTheSettings
Added more keyboard shortcuts
2024-11-26 21:51:03 -06:00
manuelcortez 5f7f34f29d Merge pull request #644 from Mohamed00/communityShortcut
Added keyboard shortcut for create community timeline action
2024-11-26 21:50:35 -06:00
José Manuel Delicado 90be9a09bf Merge pull request #723 from MCV-Software/dependabot/pip/coverage-7.6.8
Bump coverage from 7.6.7 to 7.6.8
2024-11-25 21:17:05 +01:00
dependabot[bot] 8445140df9 Bump coverage from 7.6.7 to 7.6.8
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.7 to 7.6.8.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.6.7...7.6.8)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-25 20:16:20 +00:00
José Manuel Delicado 4fc8bc1ddc Merge pull request #724 from MCV-Software/dependabot/pip/cx-freeze-7.2.6
Bump cx-freeze from 7.2.5 to 7.2.6
2024-11-25 21:14:53 +01:00
dependabot[bot] 3ebc137208 Bump cx-freeze from 7.2.5 to 7.2.6
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.2.5 to 7.2.6.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.2.5...7.2.6)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-25 20:08:20 +00:00
manuelcortez 0ff0cc9cd9 Updated translation catalogs
Update translation files / update_catalogs (push) Has been cancelled
2024-11-24 00:55:56 +00:00
José Manuel Delicado 6d63195f72 Merge pull request #721 from MCV-Software/dependabot/pip/coverage-7.6.7
Bump coverage from 7.6.4 to 7.6.7
2024-11-19 07:31:13 +01:00
José Manuel Delicado 3129b0961e Merge pull request #722 from MCV-Software/dependabot/pip/deepl-1.20.0
Bump deepl from 1.19.1 to 1.20.0
2024-11-19 07:30:56 +01:00
dependabot[bot] 156c62cc43 Bump deepl from 1.19.1 to 1.20.0
Bumps [deepl](https://github.com/DeepLcom/deepl-python) from 1.19.1 to 1.20.0.
- [Release notes](https://github.com/DeepLcom/deepl-python/releases)
- [Changelog](https://github.com/DeepLcom/deepl-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DeepLcom/deepl-python/compare/v1.19.1...v1.20.0)

---
updated-dependencies:
- dependency-name: deepl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 23:50:23 +00:00
dependabot[bot] 81af079fb5 Bump coverage from 7.6.4 to 7.6.7
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.4 to 7.6.7.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.6.4...7.6.7)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 23:50:16 +00:00
manuelcortez 987b4a3f32 Updated translation catalogs 2024-11-17 00:55:51 +00:00
José Manuel Delicado a426e23138 Merge pull request #718 from MCV-Software/dependabot/pip/cx-freeze-7.2.5
Update translation files / update_catalogs (push) Failing after 54s
Bump cx-freeze from 7.2.4 to 7.2.5
2024-11-12 07:30:08 +01:00
José Manuel Delicado 7a66d9aaae Merge pull request #719 from MCV-Software/dependabot/pip/packaging-24.2
Bump packaging from 24.1 to 24.2
2024-11-12 07:29:52 +01:00
José Manuel Delicado aa54cd6f24 Merge pull request #720 from MCV-Software/dependabot/pip/zipp-3.21.0
Bump zipp from 3.20.2 to 3.21.0
2024-11-12 07:29:38 +01:00
dependabot[bot] 8e7366c5ed Bump zipp from 3.20.2 to 3.21.0
Bumps [zipp](https://github.com/jaraco/zipp) from 3.20.2 to 3.21.0.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.20.2...v3.21.0)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 23:33:55 +00:00
dependabot[bot] 1088190830 Bump packaging from 24.1 to 24.2
Bumps [packaging](https://github.com/pypa/packaging) from 24.1 to 24.2.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/24.1...24.2)

---
updated-dependencies:
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 23:33:47 +00:00
dependabot[bot] 1e009bdd11 Bump cx-freeze from 7.2.4 to 7.2.5
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.2.4 to 7.2.5.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.2.4...7.2.5)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 23:33:44 +00:00
manuelcortez 2a031ab1ef Updated translation catalogs
Update translation files / update_catalogs (push) Has been cancelled
2024-11-10 00:55:38 +00:00
José Manuel Delicado ce9099c230 Merge pull request #716 from MCV-Software/dependabot/pip/numpy-2.1.3
Bump numpy from 2.1.2 to 2.1.3
2024-11-05 07:25:07 +01:00
José Manuel Delicado 396b8a5465 Merge pull request #717 from MCV-Software/dependabot/pip/cx-freeze-7.2.4
Bump cx-freeze from 7.2.3 to 7.2.4
2024-11-05 07:24:53 +01:00
dependabot[bot] 799f432ea4 Bump cx-freeze from 7.2.3 to 7.2.4
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.2.3 to 7.2.4.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.2.3...7.2.4)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 23:18:27 +00:00
dependabot[bot] c0cf43b12d Bump numpy from 2.1.2 to 2.1.3
Bumps [numpy](https://github.com/numpy/numpy) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v2.1.2...v2.1.3)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 23:18:23 +00:00
manuelcortez 98a1398c17 Updated translation catalogs 2024-11-03 00:55:46 +00:00
manuelcortez 979b42dd2c Updated translation catalogs
Update translation files / update_catalogs (push) Failing after 4m37s
2024-10-27 00:55:53 +00:00
José Manuel Delicado bcfee1489f Merge pull request #713 from MCV-Software/dependabot/pip/psutil-6.1.0
Update translation files / update_catalogs (push) Failing after 4m38s
Bump psutil from 6.0.0 to 6.1.0
2024-10-22 07:29:32 +02:00
José Manuel Delicado 4f33a3e765 Merge pull request #714 from MCV-Software/dependabot/pip/coverage-7.6.4
Bump coverage from 7.6.3 to 7.6.4
2024-10-22 07:29:15 +02:00
José Manuel Delicado d424783689 Merge pull request #715 from MCV-Software/dependabot/pip/pillow-11.0.0
Bump pillow from 10.4.0 to 11.0.0
2024-10-22 07:28:56 +02:00
dependabot[bot] dd6d771d6e Bump pillow from 10.4.0 to 11.0.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.4.0 to 11.0.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/10.4.0...11.0.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 23:38:54 +00:00
dependabot[bot] 898fc6d81a Bump coverage from 7.6.3 to 7.6.4
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.3 to 7.6.4.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.6.3...7.6.4)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 23:38:39 +00:00
dependabot[bot] eb2ff2f543 Bump psutil from 6.0.0 to 6.1.0
Bumps [psutil](https://github.com/giampaolo/psutil) from 6.0.0 to 6.1.0.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-6.0.0...release-6.1.0)

---
updated-dependencies:
- dependency-name: psutil
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 23:38:32 +00:00
manuelcortez b33c975632 Updated translation catalogs 2024-10-20 00:55:45 +00:00
José Manuel Delicado e3acbf2b76 Merge pull request #712 from MCV-Software/dependabot/pip/coverage-7.6.3
Update translation files / update_catalogs (push) Failing after 5m8s
Bump coverage from 7.6.1 to 7.6.3
2024-10-15 07:19:31 +02:00
José Manuel Delicado 68625880f8 Merge pull request #711 from MCV-Software/dependabot/pip/cx-logging-3.2.1
Bump cx-logging from 3.2.0 to 3.2.1
2024-10-15 07:19:11 +02:00
José Manuel Delicado 9dfd2cd2b6 Merge pull request #710 from MCV-Software/dependabot/pip/pywin32-308
Bump pywin32 from 307 to 308
2024-10-15 07:18:57 +02:00
José Manuel Delicado 8d22b475ce Merge pull request #709 from MCV-Software/dependabot/pip/charset-normalizer-3.4.0
Bump charset-normalizer from 3.3.2 to 3.4.0
2024-10-15 07:18:43 +02:00
dependabot[bot] ed68871645 Bump coverage from 7.6.1 to 7.6.3
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.1 to 7.6.3.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.6.1...7.6.3)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 23:44:22 +00:00
dependabot[bot] 6860f5a6f3 Bump cx-logging from 3.2.0 to 3.2.1
Bumps [cx-logging](https://github.com/anthony-tuininga/cx_Logging) from 3.2.0 to 3.2.1.
- [Release notes](https://github.com/anthony-tuininga/cx_Logging/releases)
- [Commits](https://github.com/anthony-tuininga/cx_Logging/compare/v3.2.0...v3.2.1)

---
updated-dependencies:
- dependency-name: cx-logging
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 23:44:14 +00:00
dependabot[bot] d57cae035d Bump pywin32 from 307 to 308
Bumps [pywin32](https://github.com/mhammond/pywin32) from 307 to 308.
- [Release notes](https://github.com/mhammond/pywin32/releases)
- [Changelog](https://github.com/mhammond/pywin32/blob/main/CHANGES.txt)
- [Commits](https://github.com/mhammond/pywin32/commits)

---
updated-dependencies:
- dependency-name: pywin32
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 23:44:10 +00:00
dependabot[bot] 7d3b2a8181 Bump charset-normalizer from 3.3.2 to 3.4.0
Bumps [charset-normalizer](https://github.com/Ousret/charset_normalizer) from 3.3.2 to 3.4.0.
- [Release notes](https://github.com/Ousret/charset_normalizer/releases)
- [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0)

---
updated-dependencies:
- dependency-name: charset-normalizer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 23:44:08 +00:00
manuelcortez 0907e05d81 Updated translation catalogs 2024-10-13 00:55:44 +00:00
José Manuel Delicado 955a6e27d3 Merge pull request #707 from MCV-Software/dependabot/pip/python-vlc-3.0.21203
Bump python-vlc from 3.0.20123 to 3.0.21203
2024-10-08 07:30:47 +02:00
dependabot[bot] 41d56259da Bump python-vlc from 3.0.20123 to 3.0.21203
Bumps [python-vlc](https://github.com/oaubert/python-vlc) from 3.0.20123 to 3.0.21203.
- [Commits](https://github.com/oaubert/python-vlc/commits)

---
updated-dependencies:
- dependency-name: python-vlc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-08 05:30:35 +00:00
José Manuel Delicado 230146d20e Merge pull request #704 from MCV-Software/dependabot/pip/types-python-dateutil-2.9.0.20241003
Bump types-python-dateutil from 2.9.0.20240906 to 2.9.0.20241003
2024-10-08 07:29:33 +02:00
José Manuel Delicado 793315c151 Merge pull request #705 from MCV-Software/dependabot/pip/numpy-2.1.2
Bump numpy from 2.1.1 to 2.1.2
2024-10-08 07:29:14 +02:00
José Manuel Delicado 84d120d17b Merge pull request #706 from MCV-Software/dependabot/pip/pywin32-307
Bump pywin32 from 306 to 307
2024-10-08 07:28:36 +02:00
José Manuel Delicado 13e598c212 Merge pull request #708 from MCV-Software/dependabot/pip/cx-freeze-7.2.3
Bump cx-freeze from 7.2.2 to 7.2.3
2024-10-08 07:28:19 +02:00
dependabot[bot] 8d9af25797 Bump cx-freeze from 7.2.2 to 7.2.3
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.2.2 to 7.2.3.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.2.2...7.2.3)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 23:55:31 +00:00
dependabot[bot] 9ba426c101 Bump pywin32 from 306 to 307
Bumps [pywin32](https://github.com/mhammond/pywin32) from 306 to 307.
- [Release notes](https://github.com/mhammond/pywin32/releases)
- [Changelog](https://github.com/mhammond/pywin32/blob/main/CHANGES.txt)
- [Commits](https://github.com/mhammond/pywin32/commits)

---
updated-dependencies:
- dependency-name: pywin32
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 23:55:23 +00:00
dependabot[bot] be9ad7d3ba Bump numpy from 2.1.1 to 2.1.2
Bumps [numpy](https://github.com/numpy/numpy) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v2.1.1...v2.1.2)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 23:55:18 +00:00
dependabot[bot] 1ad9f11c1b Bump types-python-dateutil from 2.9.0.20240906 to 2.9.0.20241003
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.9.0.20240906 to 2.9.0.20241003.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 23:55:13 +00:00
manuelcortez ab07faec2d Updated translation catalogs 2024-10-06 00:55:45 +00:00
manuelcortez 3bd7357b10 Updated translation catalogs 2024-09-29 00:55:48 +00:00
José Manuel Delicado 8e9d5333ef Merge pull request #700 from MCV-Software/dependabot/pip/configobj-5.0.9
Bump configobj from 5.0.8 to 5.0.9
2024-09-24 07:29:26 +02:00
José Manuel Delicado bd5433f9ba Merge pull request #701 from MCV-Software/dependabot/pip/deepl-1.19.1
Bump deepl from 1.18.0 to 1.19.1
2024-09-24 07:29:08 +02:00
José Manuel Delicado 0a72669396 Merge pull request #702 from MCV-Software/dependabot/pip/importlib-metadata-8.5.0
Bump importlib-metadata from 8.4.0 to 8.5.0
2024-09-24 07:28:48 +02:00
José Manuel Delicado c951549942 Merge pull request #703 from MCV-Software/dependabot/pip/cx-freeze-7.2.2
Bump cx-freeze from 7.2.0 to 7.2.2
2024-09-24 07:28:31 +02:00
dependabot[bot] 3c5a856383 Bump cx-freeze from 7.2.0 to 7.2.2
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.2.0 to 7.2.2.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.2.0...7.2.2)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 23:43:44 +00:00
dependabot[bot] 48753291c3 Bump importlib-metadata from 8.4.0 to 8.5.0
Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 8.4.0 to 8.5.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.4.0...v8.5.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 23:43:41 +00:00
dependabot[bot] 1f11fd4503 Bump deepl from 1.18.0 to 1.19.1
Bumps [deepl](https://github.com/DeepLcom/deepl-python) from 1.18.0 to 1.19.1.
- [Release notes](https://github.com/DeepLcom/deepl-python/releases)
- [Changelog](https://github.com/DeepLcom/deepl-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DeepLcom/deepl-python/compare/v1.18.0...v1.19.1)

---
updated-dependencies:
- dependency-name: deepl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 23:43:33 +00:00
dependabot[bot] e968d4df7c Bump configobj from 5.0.8 to 5.0.9
Bumps [configobj](https://github.com/DiffSK/configobj) from 5.0.8 to 5.0.9.
- [Release notes](https://github.com/DiffSK/configobj/releases)
- [Changelog](https://github.com/DiffSK/configobj/blob/release/CHANGES.rst)
- [Commits](https://github.com/DiffSK/configobj/compare/v5.0.8...v5.0.9)

---
updated-dependencies:
- dependency-name: configobj
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 23:43:29 +00:00
manuelcortez c30b1a61ad Updated translation catalogs 2024-09-22 00:55:42 +00:00
José Manuel Delicado 5376a63375 Merge pull request #695 from MCV-Software/dependabot/pip/wxpython-4.2.2
Bump wxpython from 4.2.1 to 4.2.2
2024-09-17 07:39:36 +02:00
José Manuel Delicado 5b4d2accbf Merge pull request #696 from MCV-Software/dependabot/pip/pytest-8.3.3
Bump pytest from 8.3.2 to 8.3.3
2024-09-17 07:39:17 +02:00
José Manuel Delicado 95714425b3 Merge pull request #697 from MCV-Software/dependabot/pip/urllib3-2.2.3
Bump urllib3 from 2.2.2 to 2.2.3
2024-09-17 07:39:02 +02:00
José Manuel Delicado 62ae44b1c6 Merge pull request #698 from MCV-Software/dependabot/pip/zipp-3.20.2
Bump zipp from 3.20.1 to 3.20.2
2024-09-17 07:38:48 +02:00
José Manuel Delicado b14f5ffd00 Merge pull request #699 from MCV-Software/dependabot/pip/idna-3.10
Bump idna from 3.8 to 3.10
2024-09-17 07:37:52 +02:00
dependabot[bot] 4ad6cf6f34 Bump idna from 3.8 to 3.10
Bumps [idna](https://github.com/kjd/idna) from 3.8 to 3.10.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.8...v3.10)

---
updated-dependencies:
- dependency-name: idna
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 23:33:34 +00:00
dependabot[bot] c41c19a03a Bump zipp from 3.20.1 to 3.20.2
Bumps [zipp](https://github.com/jaraco/zipp) from 3.20.1 to 3.20.2.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.20.1...v3.20.2)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 23:33:30 +00:00
dependabot[bot] f34c4a66ff Bump urllib3 from 2.2.2 to 2.2.3
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.2.2 to 2.2.3.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.2.2...2.2.3)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 23:33:25 +00:00
dependabot[bot] b57fb401b9 Bump pytest from 8.3.2 to 8.3.3
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.2 to 8.3.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.2...8.3.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 23:33:22 +00:00
dependabot[bot] 13aeb23972 Bump wxpython from 4.2.1 to 4.2.2
Bumps [wxpython](https://github.com/wxWidgets/Phoenix) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/wxWidgets/Phoenix/releases)
- [Changelog](https://github.com/wxWidgets/Phoenix/blob/master/CHANGES.rst)
- [Commits](https://github.com/wxWidgets/Phoenix/compare/wxPython-4.2.1...wxPython-4.2.2)

---
updated-dependencies:
- dependency-name: wxpython
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 23:33:19 +00:00
manuelcortez 9a4015b448 Updated translation catalogs 2024-09-15 00:55:43 +00:00
José Manuel Delicado 634c41cca5 Merge pull request #693 from MCV-Software/dependabot/pip/numpy-2.1.1
Bump numpy from 2.1.0 to 2.1.1
2024-09-10 07:28:38 +02:00
José Manuel Delicado e12e237f05 Merge pull request #694 from MCV-Software/dependabot/pip/types-python-dateutil-2.9.0.20240906
Bump types-python-dateutil from 2.9.0.20240821 to 2.9.0.20240906
2024-09-10 07:28:23 +02:00
dependabot[bot] 23762fe0c0 Bump types-python-dateutil from 2.9.0.20240821 to 2.9.0.20240906
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.9.0.20240821 to 2.9.0.20240906.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 23:55:08 +00:00
dependabot[bot] a8831abe6c Bump numpy from 2.1.0 to 2.1.1
Bumps [numpy](https://github.com/numpy/numpy) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v2.1.0...v2.1.1)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 23:55:02 +00:00
manuelcortez dae7e39cf0 Updated translation catalogs 2024-09-08 00:55:38 +00:00
José Manuel Delicado 06f55753bc Merge pull request #692 from MCV-Software/dependabot/pip/certifi-2024.8.30
Bump certifi from 2024.7.4 to 2024.8.30
2024-09-03 07:28:24 +02:00
dependabot[bot] 2c856d928b Bump certifi from 2024.7.4 to 2024.8.30
Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.7.4 to 2024.8.30.
- [Commits](https://github.com/certifi/python-certifi/compare/2024.07.04...2024.08.30)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 23:28:56 +00:00
manuelcortez f616574c91 Updated translation catalogs 2024-09-01 00:55:56 +00:00
José Manuel Delicado d55e1937ee Merge pull request #688 from MCV-Software/dependabot/pip/idna-3.8
Bump idna from 3.7 to 3.8
2024-08-27 07:36:18 +02:00
dependabot[bot] d58b1316e6 Bump idna from 3.7 to 3.8
Bumps [idna](https://github.com/kjd/idna) from 3.7 to 3.8.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.7...v3.8)

---
updated-dependencies:
- dependency-name: idna
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-27 05:35:17 +00:00
José Manuel Delicado 298d935285 Merge pull request #689 from MCV-Software/dependabot/pip/types-python-dateutil-2.9.0.20240821
Bump types-python-dateutil from 2.9.0.20240316 to 2.9.0.20240821
2024-08-27 07:34:30 +02:00
José Manuel Delicado 6287def612 Merge pull request #690 from MCV-Software/dependabot/pip/zipp-3.20.1
Bump zipp from 3.20.0 to 3.20.1
2024-08-27 07:34:14 +02:00
José Manuel Delicado 4577952a71 Merge pull request #691 from MCV-Software/dependabot/pip/importlib-metadata-8.4.0
Bump importlib-metadata from 8.3.0 to 8.4.0
2024-08-27 07:34:01 +02:00
dependabot[bot] e03edf22ad Bump importlib-metadata from 8.3.0 to 8.4.0
Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 8.3.0 to 8.4.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.3.0...v8.4.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 23:45:25 +00:00
dependabot[bot] 2a0e265411 Bump zipp from 3.20.0 to 3.20.1
Bumps [zipp](https://github.com/jaraco/zipp) from 3.20.0 to 3.20.1.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.20.0...v3.20.1)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 23:45:22 +00:00
dependabot[bot] 31f5835de8 Bump types-python-dateutil from 2.9.0.20240316 to 2.9.0.20240821
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.9.0.20240316 to 2.9.0.20240821.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 23:45:15 +00:00
manuelcortez b69e4f376f Updated translation catalogs 2024-08-25 00:55:31 +00:00
José Manuel Delicado 9883a3bd9d Merge pull request #685 from MCV-Software/dependabot/pip/importlib-metadata-8.3.0
Bump importlib-metadata from 8.2.0 to 8.3.0
2024-08-20 07:31:02 +02:00
José Manuel Delicado 57bb08cd04 Merge pull request #686 from MCV-Software/dependabot/pip/markdown-3.7
Bump markdown from 3.6 to 3.7
2024-08-20 07:30:47 +02:00
José Manuel Delicado 2059e476fb Merge pull request #687 from MCV-Software/dependabot/pip/numpy-2.1.0
Bump numpy from 2.0.1 to 2.1.0
2024-08-20 07:30:32 +02:00
dependabot[bot] 6611bdafc3 Bump numpy from 2.0.1 to 2.1.0
Bumps [numpy](https://github.com/numpy/numpy) from 2.0.1 to 2.1.0.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v2.0.1...v2.1.0)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 23:28:44 +00:00
dependabot[bot] 563ca968e6 Bump markdown from 3.6 to 3.7
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.6 to 3.7.
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.6...3.7)

---
updated-dependencies:
- dependency-name: markdown
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 23:28:37 +00:00
dependabot[bot] fe457fabe6 Bump importlib-metadata from 8.2.0 to 8.3.0
Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 8.2.0 to 8.3.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.2.0...v8.3.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 23:28:31 +00:00
manuelcortez d31f226b11 Updated translation catalogs 2024-08-18 00:55:21 +00:00
José Manuel Delicado 418590f82d Merge pull request #683 from MCV-Software/dependabot/pip/zipp-3.20.0 2024-08-13 06:56:14 +02:00
José Manuel Delicado 61a8429870 Merge pull request #682 from MCV-Software/dependabot/pip/attrs-24.2.0 2024-08-13 06:55:22 +02:00
dependabot[bot] 1849532c58 Bump zipp from 3.19.2 to 3.20.0
Bumps [zipp](https://github.com/jaraco/zipp) from 3.19.2 to 3.20.0.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.19.2...v3.20.0)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 23:48:36 +00:00
dependabot[bot] 72285e4620 Bump attrs from 24.1.0 to 24.2.0
Bumps [attrs](https://github.com/sponsors/hynek) from 24.1.0 to 24.2.0.
- [Commits](https://github.com/sponsors/hynek/commits)

---
updated-dependencies:
- dependency-name: attrs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 23:48:33 +00:00
manuelcortez 77e4dcef04 Updated translation catalogs 2024-08-11 00:55:26 +00:00
José Manuel Delicado 3bba679d48 Merge pull request #681 from MCV-Software/dependabot/pip/coverage-7.6.1
Bump coverage from 7.6.0 to 7.6.1
2024-08-06 08:58:17 +02:00
José Manuel Delicado 71677c27e3 Merge pull request #680 from MCV-Software/dependabot/pip/attrs-24.1.0
Bump attrs from 23.2.0 to 24.1.0
2024-08-06 08:58:02 +02:00
dependabot[bot] 6d78004dc7 Bump coverage from 7.6.0 to 7.6.1
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.0 to 7.6.1.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.6.0...7.6.1)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-06 00:01:47 +00:00
dependabot[bot] 32a320fdf8 Bump attrs from 23.2.0 to 24.1.0
Bumps [attrs](https://github.com/sponsors/hynek) from 23.2.0 to 24.1.0.
- [Commits](https://github.com/sponsors/hynek/commits)

---
updated-dependencies:
- dependency-name: attrs
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-06 00:01:43 +00:00
manuelcortez 2325872a38 Updated translation catalogs 2024-08-04 00:55:37 +00:00
José Manuel Delicado 93e52492d3 Merge pull request #679 from MCV-Software/dependabot/pip/pytest-8.3.2
Bump pytest from 8.3.1 to 8.3.2
2024-07-30 07:25:46 +02:00
José Manuel Delicado 05e226f812 Merge pull request #678 from MCV-Software/dependabot/pip/lief-0.15.1
Bump lief from 0.15.0 to 0.15.1
2024-07-30 07:25:25 +02:00
José Manuel Delicado 92d15e0905 Merge pull request #677 from MCV-Software/dependabot/pip/importlib-metadata-8.2.0
Bump importlib-metadata from 8.0.0 to 8.2.0
2024-07-30 07:25:06 +02:00
dependabot[bot] 83a38951a9 Bump pytest from 8.3.1 to 8.3.2
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.1 to 8.3.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.1...8.3.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 23:05:45 +00:00
dependabot[bot] 63cb6c0df0 Bump lief from 0.15.0 to 0.15.1
Bumps [lief](https://github.com/lief-project/LIEF) from 0.15.0 to 0.15.1.
- [Release notes](https://github.com/lief-project/LIEF/releases)
- [Commits](https://github.com/lief-project/LIEF/compare/0.15.0...0.15.1)

---
updated-dependencies:
- dependency-name: lief
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 23:05:42 +00:00
dependabot[bot] 70202a66a3 Bump importlib-metadata from 8.0.0 to 8.2.0
Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 8.0.0 to 8.2.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.0.0...v8.2.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 23:05:33 +00:00
manuelcortez cc30c676ef Updated translation catalogs 2024-07-28 00:55:28 +00:00
José Manuel Delicado 5132b7dbeb Merge pull request #673 from MCV-Software/dependabot/pip/cx-freeze-7.2.0
Bump cx-freeze from 7.1.1 to 7.2.0
2024-07-23 07:41:48 +02:00
José Manuel Delicado bab9215059 Merge pull request #674 from MCV-Software/dependabot/pip/pytest-8.3.1
Bump pytest from 8.2.2 to 8.3.1
2024-07-23 07:41:28 +02:00
José Manuel Delicado d63ca0281b Merge pull request #675 from MCV-Software/dependabot/pip/numpy-2.0.1
Bump numpy from 2.0.0 to 2.0.1
2024-07-23 07:41:11 +02:00
José Manuel Delicado c0ce551727 Merge pull request #676 from MCV-Software/dependabot/pip/lief-0.15.0
Bump lief from 0.14.1 to 0.15.0
2024-07-23 07:40:56 +02:00
dependabot[bot] 2937ee6794 Bump lief from 0.14.1 to 0.15.0
Bumps [lief](https://github.com/sponsors/lief-project) from 0.14.1 to 0.15.0.
- [Commits](https://github.com/sponsors/lief-project/commits)

---
updated-dependencies:
- dependency-name: lief
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 23:59:21 +00:00
dependabot[bot] ae39b9496d Bump numpy from 2.0.0 to 2.0.1
Bumps [numpy](https://github.com/numpy/numpy) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v2.0.0...v2.0.1)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 23:59:18 +00:00
dependabot[bot] 3dc226a15a Bump pytest from 8.2.2 to 8.3.1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.2.2 to 8.3.1.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.2.2...8.3.1)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 23:59:14 +00:00
dependabot[bot] f1fcba5aa7 Bump cx-freeze from 7.1.1 to 7.2.0
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.1.1 to 7.2.0.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.1.1...7.2.0)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 23:59:04 +00:00
manuelcortez 6fde0eea08 Updated translation catalogs 2024-07-21 00:55:23 +00:00
José Manuel Delicado 19509cc1fa Merge pull request #671 from MCV-Software/dependabot/pip/coverage-7.6.0
Bump coverage from 7.5.4 to 7.6.0
2024-07-16 07:27:44 +02:00
dependabot[bot] 5ab652a7f7 Bump coverage from 7.5.4 to 7.6.0
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.5.4 to 7.6.0.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.5.4...7.6.0)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 23:54:33 +00:00
manuelcortez 767608584d Updated translation catalogs 2024-07-14 00:55:25 +00:00
manuelcortez 1cb6f4889b Updated translation catalogs 2024-07-07 00:55:20 +00:00
José Manuel Delicado 465ada9296 Merge pull request #670 from MCV-Software/dependabot/pip/certifi-2024.7.4
Bump certifi from 2024.6.2 to 2024.7.4
2024-07-06 09:38:13 +02:00
dependabot[bot] 6b78f91bc7 Bump certifi from 2024.6.2 to 2024.7.4
Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.6.2 to 2024.7.4.
- [Commits](https://github.com/certifi/python-certifi/compare/2024.06.02...2024.07.04)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-06 02:25:33 +00:00
José Manuel Delicado f13aad9d7f Merge pull request #667 from MCV-Software/dependabot/pip/importlib-metadata-8.0.0
Bump importlib-metadata from 7.2.1 to 8.0.0
2024-07-02 07:31:36 +02:00
José Manuel Delicado e72b4cd997 Merge pull request #668 from MCV-Software/dependabot/pip/pillow-10.4.0
Bump pillow from 10.3.0 to 10.4.0
2024-07-02 07:31:19 +02:00
José Manuel Delicado 9d13060d65 Merge pull request #669 from MCV-Software/dependabot/pip/numpy-2.0.0
Bump numpy from 1.26.4 to 2.0.0
2024-07-02 07:30:57 +02:00
dependabot[bot] edb0f0cb2a Bump numpy from 1.26.4 to 2.0.0
Bumps [numpy](https://github.com/numpy/numpy) from 1.26.4 to 2.0.0.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v1.26.4...v2.0.0)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 23:58:40 +00:00
dependabot[bot] 06f68eacf8 Bump pillow from 10.3.0 to 10.4.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.3.0 to 10.4.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/10.3.0...10.4.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 23:58:23 +00:00
dependabot[bot] 3ac12bb179 Bump importlib-metadata from 7.2.1 to 8.0.0
Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 7.2.1 to 8.0.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v7.2.1...v8.0.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 23:58:13 +00:00
manuelcortez ee294908ff Updated translation catalogs 2024-06-30 00:55:20 +00:00
José Manuel Delicado 1b5bb3b7ae Merge pull request #662 from MCV-Software/dependabot/pip/psutil-6.0.0
Bump psutil from 5.9.8 to 6.0.0
2024-06-25 07:28:54 +02:00
José Manuel Delicado 9142cad3c2 Merge pull request #663 from MCV-Software/dependabot/pip/packaging-24.1
Bump packaging from 24.0 to 24.1
2024-06-25 07:28:35 +02:00
José Manuel Delicado 81c09e6759 Merge pull request #664 from MCV-Software/dependabot/pip/importlib-metadata-7.2.1
Bump importlib-metadata from 7.1.0 to 7.2.1
2024-06-25 07:28:19 +02:00
José Manuel Delicado db7d032916 Merge pull request #665 from MCV-Software/dependabot/pip/coverage-7.5.4
Bump coverage from 7.5.3 to 7.5.4
2024-06-25 07:28:01 +02:00
José Manuel Delicado 69729f5ac0 Merge pull request #666 from MCV-Software/dependabot/pip/pytest-8.2.2
Bump pytest from 8.2.1 to 8.2.2
2024-06-25 07:27:44 +02:00
dependabot[bot] d5235e7881 Bump pytest from 8.2.1 to 8.2.2
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.2.1 to 8.2.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.2.1...8.2.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 23:29:25 +00:00
dependabot[bot] 9e4691bc05 Bump coverage from 7.5.3 to 7.5.4
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.5.3 to 7.5.4.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.5.3...7.5.4)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 23:29:18 +00:00
dependabot[bot] 738182cf3a Bump importlib-metadata from 7.1.0 to 7.2.1
Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 7.1.0 to 7.2.1.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v7.1.0...v7.2.1)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 23:29:07 +00:00
dependabot[bot] ab2def8145 Bump packaging from 24.0 to 24.1
Bumps [packaging](https://github.com/pypa/packaging) from 24.0 to 24.1.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/24.0...24.1)

---
updated-dependencies:
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 23:29:03 +00:00
dependabot[bot] 9226ecdd90 Bump psutil from 5.9.8 to 6.0.0
Bumps [psutil](https://github.com/giampaolo/psutil) from 5.9.8 to 6.0.0.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-5.9.8...release-6.0.0)

---
updated-dependencies:
- dependency-name: psutil
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 23:28:57 +00:00
manuelcortez 0ec60eb54f Updated translation catalogs 2024-06-23 00:55:12 +00:00
José Manuel Delicado ae08334335 Merge pull request #654 from MCV-Software/dependabot/pip/requests-2.32.3
Bump requests from 2.32.2 to 2.32.3
2024-06-18 14:58:59 +02:00
José Manuel Delicado a0aa6262f9 Merge pull request #657 from MCV-Software/dependabot/pip/certifi-2024.6.2
Bump certifi from 2024.2.2 to 2024.6.2
2024-06-18 14:58:44 +02:00
José Manuel Delicado 10b8b4214e Merge pull request #655 from MCV-Software/dependabot/pip/coverage-7.5.3
Bump coverage from 7.5.2 to 7.5.3
2024-06-18 07:36:08 +02:00
dependabot[bot] cea32f95d0 Bump coverage from 7.5.2 to 7.5.3
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.5.2 to 7.5.3.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.5.2...7.5.3)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 05:34:51 +00:00
José Manuel Delicado b27be24cb7 Merge pull request #660 from MCV-Software/dependabot/pip/urllib3-2.2.2
Bump urllib3 from 2.2.1 to 2.2.2
2024-06-18 07:33:51 +02:00
José Manuel Delicado 5c321e7601 Merge pull request #661 from MCV-Software/dependabot/pip/cx-freeze-7.1.1
Bump cx-freeze from 7.1.0 to 7.1.1
2024-06-18 07:33:33 +02:00
dependabot[bot] 1ebbd90701 Bump cx-freeze from 7.1.0 to 7.1.1
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.1.0...7.1.1)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 23:49:06 +00:00
dependabot[bot] 70883d844b Bump urllib3 from 2.2.1 to 2.2.2
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.2.1...2.2.2)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 22:52:58 +00:00
manuelcortez d01085427a Updated translation catalogs 2024-06-16 00:55:19 +00:00
José Manuel Delicado ee74605b19 Merge pull request #659 from MCV-Software/dependabot/pip/zipp-3.19.2
Bump zipp from 3.19.0 to 3.19.2
2024-06-11 07:29:50 +02:00
dependabot[bot] aaf7fca14a Bump zipp from 3.19.0 to 3.19.2
Bumps [zipp](https://github.com/jaraco/zipp) from 3.19.0 to 3.19.2.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.19.0...v3.19.2)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 23:49:28 +00:00
manuelcortez 9ed6af000d Updated translation catalogs 2024-06-09 00:55:13 +00:00
Corentin Bacqué-Cazenave d24f114636 Translated using Weblate (French)
Currently translated at 100.0% (669 of 669 strings)

Translation: TWBlue/TWBlue
Translate-URL: https://weblate.mcvsoftware.com/projects/twblue/twblue/fr/
2024-06-04 10:03:12 -06:00
dependabot[bot] fd3ac675f4 Bump certifi from 2024.2.2 to 2024.6.2
Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.2.2 to 2024.6.2.
- [Commits](https://github.com/certifi/python-certifi/compare/2024.02.02...2024.06.02)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 23:43:55 +00:00
dependabot[bot] 4d161c3c7c Bump requests from 2.32.2 to 2.32.3
Bumps [requests](https://github.com/psf/requests) from 2.32.2 to 2.32.3.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.2...v2.32.3)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 23:43:32 +00:00
Riku 89dd25370a Translated using Weblate (Japanese)
Currently translated at 100.0% (669 of 669 strings)

Translation: TWBlue/TWBlue
Translate-URL: https://weblate.mcvsoftware.com/projects/twblue/twblue/ja/
2024-06-02 20:46:32 -06:00
manuelcortez cdeb0ece1c Updated translation catalogs 2024-06-02 00:55:10 +00:00
José Manuel Delicado 13c6094a89 Merge pull request #652 from MCV-Software/dependabot/pip/cx-freeze-7.1.0
Bump cx-freeze from 7.0.0 to 7.1.0
2024-05-28 08:12:09 +02:00
dependabot[bot] 2fd756aaff Bump cx-freeze from 7.0.0 to 7.1.0
Bumps [cx-freeze](https://github.com/marcelotduarte/cx_Freeze) from 7.0.0 to 7.1.0.
- [Release notes](https://github.com/marcelotduarte/cx_Freeze/releases)
- [Commits](https://github.com/marcelotduarte/cx_Freeze/compare/7.0.0...7.1.0)

---
updated-dependencies:
- dependency-name: cx-freeze
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-28 06:10:10 +00:00
José Manuel Delicado 9eb87d50f6 Merge pull request #650 from MCV-Software/dependabot/pip/zipp-3.19.0
Bump zipp from 3.18.2 to 3.19.0
2024-05-28 08:09:21 +02:00
José Manuel Delicado 1ec32bf119 Merge pull request #651 from MCV-Software/dependabot/pip/requests-2.32.2
Bump requests from 2.32.1 to 2.32.2
2024-05-28 08:09:02 +02:00
José Manuel Delicado 9df58cc7b5 Merge pull request #653 from MCV-Software/dependabot/pip/coverage-7.5.2
Bump coverage from 7.5.1 to 7.5.2
2024-05-28 08:08:25 +02:00
dependabot[bot] 281a6853d8 Bump coverage from 7.5.1 to 7.5.2
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.5.1 to 7.5.2.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.5.1...7.5.2)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 23:24:57 +00:00
dependabot[bot] 5223d64f59 Bump requests from 2.32.1 to 2.32.2
Bumps [requests](https://github.com/psf/requests) from 2.32.1 to 2.32.2.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.1...v2.32.2)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 23:24:45 +00:00
dependabot[bot] 915dcad2e9 Bump zipp from 3.18.2 to 3.19.0
Bumps [zipp](https://github.com/jaraco/zipp) from 3.18.2 to 3.19.0.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.18.2...v3.19.0)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 23:24:42 +00:00
manuelcortez a2ebbcba60 Updated translation catalogs 2024-05-26 00:55:14 +00:00
Corentin Bacqué-Cazenave 089c984fbb Translated using Weblate (French)
Currently translated at 100.0% (670 of 670 strings)

Translation: TWBlue/TWBlue
Translate-URL: https://weblate.mcvsoftware.com/projects/twblue/twblue/fr/
2024-05-25 00:46:32 -06:00
Mohamed 9d66b23c8e Impoved persons template shortcut 2024-05-24 18:35:35 -04:00
Mohamed 33ccb0a8a9 Improved shortcut for proxy server 2024-05-24 18:31:11 -04:00
Mohamed c06c6beff4 Added keyboard shortcuts for account and global settings dialogs 2024-05-24 18:24:33 -04:00
manuelcortez 438115d8e8 Fix: Removed line previously used for debug. Should close #637 2024-05-24 15:40:36 -06:00
manuelcortez 650747f423 Merge pull request #646 from Mohamed00/communityTimelineShortcuts
Added keyboard shortcuts in community timeline dialog
2024-05-24 15:36:47 -06:00
Mohamed 80dd29fb13 Added keyboard shortcuts for radio buttons in community timeline dialog 2024-05-24 17:19:03 -04:00
manuelcortez 28283c72a3 Merge pull request #645 from Mohamed00/viewProfileShortcuts
Added keyboard shortcuts to view profile dialog
2024-05-23 21:24:36 -06:00
Mohamed 30ce19ad6c Added keyboard shortcuts to view profile dialog 2024-05-23 19:54:47 -04:00
manuelcortez a17616b3dc Release TWBlue 2024.05.23 2024-05-23 17:29:28 -06:00
Mohamed cd9756ae61 Added keyboard shortcut for create community timeline action 2024-05-21 14:59:47 -04:00
51 changed files with 12069 additions and 7352 deletions
+2
View File
@@ -9,3 +9,5 @@ updates:
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
ignore:
- dependency-name: "lief"
+7
View File
@@ -2,6 +2,13 @@ TWBlue Changelog
## changes in this version
* Mastodon:
* A language selector has been added for posting in TWBlue. It is now possible to choose the language in which a post will be made, which will be useful for content filtering and other language-dependent features. The default language can be chosen based on your Mastodon accounts language, the language of the post youre replying to, or, if no automatic selection is possible, TWBlues own language will be used by default.
* TWBlue should be able to display all posts in the post displayer dialog.
* reading long posts in the graphical user interface should work better.
## Changes in version 2024.5.23
* Core:
* The way sessions are named has been changed. Now the account is indicated first, followed by the social network it belongs to.
* An option has been added to the global options dialog that allows for the reading of long posts in the graphical interface. This is especially useful since, by default, the graphical interface can only display a limited number of characters in the post.
+27 -27
View File
@@ -1,57 +1,57 @@
accessible_output2 @ git+https://github.com/accessibleapps/accessible_output2@57bda997d98e87dd78aa049e7021cf777871619b
arrow==1.3.0
attrs==23.2.0
attrs==25.1.0
backports.functools-lru-cache==2.0.0
blurhash==1.1.4
certifi==2024.2.2
certifi==2025.1.31
chardet==5.2.0
charset-normalizer==3.3.2
charset-normalizer==3.4.1
colorama==0.4.6
configobj==5.0.8
coverage==7.5.1
cx-Freeze==7.0.0
cx-Logging==3.2.0
decorator==5.1.1
configobj==5.0.9
coverage==7.6.12
cx-Freeze==7.2.10
cx-Logging==3.2.1
decorator==5.2.1
demoji==1.1.0
deepl==1.18.0
deepl==1.21.0
future==1.0.0
idna==3.7
importlib-metadata==7.1.0
idna==3.10
importlib-metadata==8.6.1
iniconfig==2.0.0
libloader @ git+https://github.com/accessibleapps/libloader@bc94811c095b2e57a036acd88660be9a33260267
libretranslatepy==2.1.4
lief==0.14.1
Markdown==3.6
Mastodon.py==1.8.1
numpy==1.26.4
lief==0.15.1
Markdown==3.7
Mastodon.py==2.0.1
numpy==2.2.3
oauthlib==3.2.2
packaging==24.0
pillow==10.3.0
packaging==24.2
pillow==11.1.0
platform_utils @ git+https://github.com/accessibleapps/platform_utils@e0d79f7b399c4ea677a633d2dde9202350d62c38
pluggy==1.5.0
psutil==5.9.8
psutil==7.0.0
pyenchant==3.2.2
pypiwin32==223
Pypubsub==4.0.3
PySocks==1.7.1
pytest==8.2.1
pytest==8.3.5
python-dateutil==2.9.0.post0
python-magic-bin==0.4.14
python-vlc==3.0.20123
pywin32==306
requests==2.32.1
python-vlc==3.0.21203
pywin32==308
requests==2.32.3
requests-oauthlib==2.0.0
requests-toolbelt==1.0.0
rfc3986==2.0.0
six==1.16.0
six==1.17.0
sniffio==1.3.1
sound_lib @ git+https://github.com/accessibleapps/sound_lib@a439f0943fb95ee7b6ba24f51a686f47c4ad66b2
sqlitedict==2.1.0
twitter-text-parser==3.0.0
types-python-dateutil==2.9.0.20240316
urllib3==2.2.1
types-python-dateutil==2.9.0.20241206
urllib3==2.3.0
win-inet-pton==1.1.0
winpaths==0.2
wxPython==4.2.1
wxPython==4.2.2
youtube-dl==2021.12.17
zipp==3.18.2
zipp==3.21.0
+14 -8
View File
@@ -70,7 +70,7 @@ class BaseBuffer(base.Buffer):
response = post.message.ShowModal()
if response == wx.ID_OK:
post_data = post.get_data()
call_threaded(self.session.send_post, posts=post_data, visibility=post.get_visibility(), **kwargs)
call_threaded(self.session.send_post, posts=post_data, visibility=post.get_visibility(), language=post.get_language(), **kwargs)
if hasattr(post.message, "destroy"):
post.message.destroy()
@@ -157,6 +157,9 @@ class BaseBuffer(base.Buffer):
items_db = self.session.db[self.name]
for i in items:
if utils.find_item(i, self.session.db[self.name]) == None:
filter_status = utils.evaluate_filters(post=i, current_context=utils.get_current_context(self.name))
if filter_status == "hide":
continue
elements.append(i)
if self.session.settings["general"]["reverse_timelines"] == False:
items_db.insert(0, i)
@@ -335,16 +338,19 @@ class BaseBuffer(base.Buffer):
visibility = "unlisted"
if item.reblog != None:
users = ["@{} ".format(user.acct) for user in item.reblog.mentions if user.id != self.session.db["user_id"]]
language = item.reblog.language
if item.reblog.account.acct != item.account.acct and "@{} ".format(item.reblog.account.acct) not in users:
users.append("@{} ".format(item.reblog.account.acct))
else:
users = ["@{} ".format(user.acct) for user in item.mentions if user.id != self.session.db["user_id"]]
language = item.language
if "@{} ".format(item.account.acct) not in users and item.account.id != self.session.db["user_id"]:
users.insert(0, "@{} ".format(item.account.acct))
users_str = "".join(users)
post = messages.post(session=self.session, title=title, caption=caption, text=users_str)
visibility_settings = dict(public=0, unlisted=1, private=2, direct=3)
post.message.visibility.SetSelection(visibility_settings.get(visibility))
post.set_language(language)
# Respect content warning settings.
if item.sensitive:
post.message.sensitive.SetValue(item.sensitive)
@@ -353,7 +359,7 @@ class BaseBuffer(base.Buffer):
response = post.message.ShowModal()
if response == wx.ID_OK:
post_data = post.get_data()
call_threaded(self.session.send_post, reply_to=item.id, posts=post_data, visibility=post.get_visibility())
call_threaded(self.session.send_post, reply_to=item.id, posts=post_data, visibility=post.get_visibility(), language=post.get_language())
if hasattr(post.message, "destroy"):
post.message.destroy()
@@ -380,7 +386,7 @@ class BaseBuffer(base.Buffer):
response = post.message.ShowModal()
if response == wx.ID_OK:
post_data = post.get_data()
call_threaded(self.session.send_post, posts=post_data, visibility="direct", reply_to=item.id)
call_threaded(self.session.send_post, posts=post_data, visibility="direct", reply_to=item.id, language=post.get_language())
if hasattr(post.message, "destroy"):
post.message.destroy()
@@ -407,7 +413,7 @@ class BaseBuffer(base.Buffer):
ts = original_date.humanize(locale=languageHandler.getLanguage())
self.buffer.list.list.SetItem(self.buffer.list.get_selected(), 2, ts)
if config.app["app-settings"]["read_long_posts_in_gui"] == True and self.buffer.list.list.HasFocus():
output.speak(self.get_message(), interrupt=True)
wx.CallLater(40, output.speak, self.get_message(), interrupt=True)
if self.session.settings['sound']['indicate_audio'] and utils.is_audio_or_video(post):
self.session.sound.play("audio.ogg")
if self.session.settings['sound']['indicate_img'] and utils.is_image(post):
@@ -551,7 +557,7 @@ class BaseBuffer(base.Buffer):
except MastodonNotFoundError:
output.speak(_("No status found with that ID"))
return
# print(post)
# print(item)
msg = messages.viewPost(self.session, item, offset_hours=self.session.db["utc_offset"], item_url=self.get_item_url(item=item))
def ocr_image(self):
@@ -621,14 +627,14 @@ class BaseBuffer(base.Buffer):
return
poll = self.session.api_call(call_name="poll_vote", id=poll.id, choices=options, preexec_message=_("Sending vote..."))
def post_from_error(self, visibility, reply_to, data):
def post_from_error(self, visibility, reply_to, data, lang):
title = _("Post")
caption = _("Write your post here")
post = messages.post(session=self.session, title=title, caption=caption)
post.set_post_data(visibility=visibility, data=data)
post.set_post_data(visibility=visibility, data=data, language=language)
response = post.message.ShowModal()
if response == wx.ID_OK:
post_data = post.get_data()
call_threaded(self.session.send_post, posts=post_data, reply_to=reply_to, visibility=post.get_visibility())
call_threaded(self.session.send_post, posts=post_data, reply_to=reply_to, visibility=post.get_visibility(), language=post.get_language())
if hasattr(post.message, "destroy"):
post.message.destroy()
@@ -164,7 +164,7 @@ class ConversationListBuffer(BaseBuffer):
def onFocus(self, *args, **kwargs):
post = self.get_item()
if config.app["app-settings"]["read_long_posts_in_gui"] == True and self.buffer.list.list.HasFocus():
output.speak(self.get_message(), interrupt=True)
wx.CallLater(40, output.speak, self.get_message(), interrupt=True)
if self.session.settings['sound']['indicate_audio'] and utils.is_audio_or_video(post):
self.session.sound.play("audio.ogg")
if self.session.settings['sound']['indicate_img'] and utils.is_image(post):
@@ -191,7 +191,7 @@ class ConversationListBuffer(BaseBuffer):
response = post.message.ShowModal()
if response == wx.ID_OK:
post_data = post.get_data()
call_threaded(self.session.send_post, reply_to=item.id, posts=post_data, visibility=visibility)
call_threaded(self.session.send_post, reply_to=item.id, posts=post_data, visibility=visibility, language=post.get_language())
if hasattr(post.message, "destroy"):
post.message.destroy()
@@ -56,6 +56,9 @@ class MentionsBuffer(BaseBuffer):
items_db = self.session.db[self.name]
for i in items:
if utils.find_item(i, self.session.db[self.name]) == None:
filter_status = utils.evaluate_filters(post=i, current_context=utils.get_current_context(self.name))
if filter_status == "hide":
continue
elements.append(i)
if self.session.settings["general"]["reverse_timelines"] == False:
items_db.insert(0, i)
@@ -3,6 +3,7 @@ import time
import logging
import arrow
import widgetUtils
import wx
import output
import languageHandler
import config
@@ -42,7 +43,7 @@ class NotificationsBuffer(BaseBuffer):
ts = original_date.humanize(locale=languageHandler.getLanguage())
self.buffer.list.list.SetItem(self.buffer.list.get_selected(), 1, ts)
if config.app["app-settings"]["read_long_posts_in_gui"] == True and self.buffer.list.list.HasFocus():
output.speak(self.get_message(), interrupt=True)
wx.CallLater(40, output.speak, self.get_message(), interrupt=True)
def bind_events(self):
self.buffer.set_focus_function(self.onFocus)
@@ -125,7 +126,7 @@ class NotificationsBuffer(BaseBuffer):
response = post.message.ShowModal()
if response == wx.ID_OK:
post_data = post.get_data()
call_threaded(self.session.send_post, posts=post_data, visibility="direct")
call_threaded(self.session.send_post, posts=post_data, visibility="direct", language=post.get_language())
if hasattr(post.message, "destroy"):
post.message.destroy()
+16 -2
View File
@@ -165,6 +165,8 @@ class Controller(object):
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.update_buffer, self.view.update_buffer)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.manage_aliases, self.view.manageAliases)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.report_error, self.view.reportError)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.create_filter, self.view.filter)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.manage_filters, self.view.manage_filters)
def set_systray_icon(self):
self.systrayIcon = sysTrayIcon.SysTrayIcon()
@@ -1086,10 +1088,10 @@ class Controller(object):
# if "direct_messages" not in buffer.session.settings["other_buffers"]["muted_buffers"]:
# self.notify(buffer.session, sound_to_play)
def mastodon_error_post(self, name, reply_to, visibility, posts):
def mastodon_error_post(self, name, reply_to, visibility, posts, language):
home = self.search_buffer("home_timeline", name)
if home != None:
wx.CallAfter(home.post_from_error, visibility=visibility, reply_to=reply_to, data=posts)
wx.CallAfter(home.post_from_error, visibility=visibility, reply_to=reply_to, data=posts, lang=language)
def change_buffer_title(self, name, buffer, title):
buffer_index = self.view.search(buffer, name)
@@ -1155,3 +1157,15 @@ class Controller(object):
handler = self.get_handler(type=buffer.session.type)
if handler and hasattr(handler, 'community_timeline'):
handler.community_timeline(self, buffer)
def create_filter(self, *args, **kwargs):
buffer = self.get_best_buffer()
handler = self.get_handler(type=buffer.session.type)
if handler and hasattr(handler, 'create_filter'):
handler.create_filter(self, buffer)
def manage_filters(self, *args, **kwargs):
buffer = self.get_best_buffer()
handler = self.get_handler(type=buffer.session.type)
if handler and hasattr(handler, 'manage_filters'):
handler.manage_filters(self, buffer)
@@ -0,0 +1 @@
# -*- coding: utf-8 -*-
@@ -0,0 +1,112 @@
# -*- coding: utf-8 -*-
import widgetUtils
from wxUI.dialogs.mastodon.filters import create_filter as dialog
from mastodon import MastodonAPIError
class CreateFilterController(object):
def __init__(self, session, filter_data=None):
super(CreateFilterController, self).__init__()
self.session = session
self.filter_data = filter_data
self.dialog = dialog.CreateFilterDialog(parent=None)
if self.filter_data is not None:
self.keywords = self.filter_data.get("keywords")
self.load_filter_data()
else:
self.keywords = []
widgetUtils.connect_event(self.dialog.keyword_panel.add_button, widgetUtils.BUTTON_PRESSED, self.on_add_keyword)
widgetUtils.connect_event(self.dialog.keyword_panel.remove_button, widgetUtils.BUTTON_PRESSED, self.on_remove_keyword)
def on_add_keyword(self, event):
""" Adds a keyword to the list. """
keyword = self.dialog.keyword_panel.keyword_text.GetValue().strip()
whole_word = self.dialog.keyword_panel.whole_word_checkbox.GetValue()
if keyword:
for idx, kw in enumerate(self.keywords):
if kw['keyword'] == keyword:
return
keyword_data = {
'keyword': keyword,
'whole_word': whole_word
}
self.keywords.append(keyword_data)
self.dialog.keyword_panel.add_keyword(keyword, whole_word)
def on_remove_keyword(self, event):
removed = self.dialog.keyword_panel.remove_keyword()
if removed is not None:
self.keywords.pop(removed)
def get_expires_in_seconds(self, selection, value):
if selection == 0:
return None
if selection == 1:
return value * 3600
elif selection == 2:
return value * 86400
elif selection == 3:
return value * 604800
elif selection == 4:
return value * 2592000
return None
def set_expires_in(self, seconds):
if seconds is None:
self.dialog.expiration_choice.SetSelection(0)
self.dialog.expiration_value.Enable(False)
return
if seconds % 2592000 == 0 and seconds >= 2592000:
self.dialog.expiration_choice.SetSelection(4)
self.dialog.expiration_value.SetValue(seconds // 2592000)
elif seconds % 604800 == 0 and seconds >= 604800:
self.dialog.expiration_choice.SetSelection(3)
self.dialog.expiration_value.SetValue(seconds // 604800)
elif seconds % 86400 == 0 and seconds >= 86400:
self.dialog.expiration_choice.SetSelection(2)
self.dialog.expiration_value.SetValue(seconds // 86400)
else:
self.dialog.expiration_choice.SetSelection(1)
self.dialog.expiration_value.SetValue(max(1, seconds // 3600))
self.dialog.expiration_value.Enable(True)
def load_filter_data(self):
if 'title' in self.filter_data:
self.dialog.name_ctrl.SetValue(self.filter_data['title'])
self.dialog.SetTitle(_("Update Filter: {}").format(self.filter_data['title']))
if 'context' in self.filter_data:
for context in self.filter_data['context']:
if context in self.dialog.context_checkboxes:
self.dialog.context_checkboxes[context].SetValue(True)
if 'filter_action' in self.filter_data:
action_index = self.dialog.actions.index(self.filter_data['filter_action']) if self.filter_data['filter_action'] in self.dialog.actions else 0
self.dialog.action_choice.SetSelection(action_index)
if 'expires_in' in self.filter_data:
self.set_expires_in(self.filter_data['expires_in'])
print(self.filter_data)
if 'keywords' in self.filter_data:
self.keywords = self.filter_data['keywords']
self.dialog.keyword_panel.set_keywords(self.filter_data['keywords'])
def get_filter_data(self):
filter_data = {
'title': self.dialog.name_ctrl.GetValue(),
'context': [],
'filter_action': self.dialog.actions[self.dialog.action_choice.GetSelection()],
'expires_in': self.get_expires_in_seconds(selection=self.dialog.expiration_choice.GetSelection(), value=self.dialog.expiration_value.GetValue()),
'keywords_attributes': self.keywords
}
for context, checkbox in self.dialog.context_checkboxes.items():
if checkbox.GetValue():
filter_data['context'].append(context)
return filter_data
def get_response(self):
response = self.dialog.ShowModal()
if response == widgetUtils.OK:
filter_data = self.get_filter_data()
if self.filter_data == None:
result = self.session.api.create_filter_v2(**filter_data)
else:
result = self.session.api.update_filter_v2(filter_id=self.filter_data['id'], **filter_data)
return result
return None
@@ -0,0 +1,99 @@
# -*- coding: utf-8 -*-
import datetime
import wx
import widgetUtils
from wxUI import commonMessageDialogs
from wxUI.dialogs.mastodon.filters import manage_filters as dialog
from . import create_filter
from mastodon import MastodonError
class ManageFiltersController(object):
def __init__(self, session):
super(ManageFiltersController, self).__init__()
self.session = session
self.selected_filter_idx = -1
self.error_loading = False
self.dialog = dialog.ManageFiltersDialog(parent=None)
self.dialog.filter_list.Bind(wx.EVT_LIST_ITEM_SELECTED, self.on_filter_selected)
self.dialog.filter_list.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.on_filter_deselected)
widgetUtils.connect_event(self.dialog.add_button, wx.EVT_BUTTON, self.on_add_filter)
widgetUtils.connect_event(self.dialog.edit_button, wx.EVT_BUTTON, self.on_edit_filter)
widgetUtils.connect_event(self.dialog.remove_button, wx.EVT_BUTTON, self.on_remove_filter)
self.load_filter_data()
def on_filter_selected(self, event):
"""Handle filter selection event."""
self.selected_filter_idx = event.GetIndex()
self.dialog.edit_button.Enable()
self.dialog.remove_button.Enable()
def on_filter_deselected(self, event):
"""Handle filter deselection event."""
self.selected_filter_idx = -1
self.dialog.edit_button.Disable()
self.dialog.remove_button.Disable()
def get_selected_filter_id(self):
"""Get the ID of the currently selected filter."""
if self.selected_filter_idx != -1:
return self.dialog.filter_list.GetItemData(self.selected_filter_idx)
return None
def load_filter_data(self):
try:
filters = self.session.api.filters_v2()
self.dialog.filter_list.DeleteAllItems()
self.on_filter_deselected(None)
for i, filter_obj in enumerate(filters):
index = self.dialog.filter_list.InsertItem(i, filter_obj.title)
keyword_count = len(filter_obj.keywords)
self.dialog.filter_list.SetItem(index, 1, str(keyword_count))
contexts = ", ".join(filter_obj.context)
self.dialog.filter_list.SetItem(index, 2, contexts)
self.dialog.filter_list.SetItem(index, 3, filter_obj.filter_action)
if filter_obj.expires_at:
expiry_str = filter_obj.expires_at.strftime("%Y-%m-%d %H:%M")
else:
expiry_str = _("Never")
self.dialog.filter_list.SetItem(index, 4, expiry_str)
self.dialog.filter_list.SetItemData(index, int(filter_obj.id) if isinstance(filter_obj.id, (int, str)) else 0)
except MastodonError as e:
commonMessageDialogs.error_loading_filters()
self.error_loading = True
def on_add_filter(self, *args, **kwargs):
filterController = create_filter.CreateFilterController(self.session)
try:
filter = filterController.get_response()
self.load_filter_data()
except MastodonError as error:
commonMessageDialogs.error_adding_filter()
return self.on_add_filter()
def on_edit_filter(self, *args, **kwargs):
filter_id = self.get_selected_filter_id()
if filter_id == None:
return
try:
filter_data = self.session.api.filter_v2(filter_id)
filterController = create_filter.CreateFilterController(self.session, filter_data=filter_data)
filterController.get_response()
self.load_filter_data()
except MastodonError as error:
commonMessageDialogs.error_adding_filter()
def on_remove_filter(self, *args, **kwargs):
filter_id = self.get_selected_filter_id()
if filter_id == None:
return
dlg = commonMessageDialogs.remove_filter()
if dlg == widgetUtils.NO:
return
try:
self.session.api.delete_filter_v2(filter_id)
self.load_filter_data()
except MastodonError as error:
commonMessageDialogs.error_removing_filter()
def get_response(self):
return self.dialog.ShowModal() == wx.ID_OK
+26 -5
View File
@@ -15,6 +15,7 @@ from wxUI.dialogs.mastodon import updateProfile as update_profile_dialogs
from wxUI.dialogs.mastodon import showUserProfile, communityTimeline
from sessions.mastodon.utils import html_filter
from . import userActions, settings
from .filters import create_filter, manage_filters
log = logging.getLogger("controller.mastodon.handler")
@@ -50,9 +51,9 @@ class Handler(object):
details=_("Show user profile"),
favs=None,
# In buffer Menu.
community_timeline =_("Create community timeline"),
filter=None,
manage_filters=None
community_timeline =_("Create c&ommunity timeline"),
filter=_("Create a &filter"),
manage_filters=_("&Manage filters")
)
# Name for the "tweet" menu in the menu bar.
self.item_menu = _("&Post")
@@ -144,7 +145,11 @@ class Handler(object):
def follow(self, buffer):
if not hasattr(buffer, "get_item"):
return
item = buffer.get_item()
# Community buffers are special because we'll need to retrieve the object locally at first.
if hasattr(buffer, "community_url"):
item = buffer.get_item_from_instance()
else:
item = buffer.get_item()
if buffer.type == "user":
users = [item.acct]
elif buffer.type == "baseBuffer":
@@ -196,7 +201,10 @@ class Handler(object):
def open_timeline(self, controller, buffer):
if not hasattr(buffer, "get_item"):
return
item = buffer.get_item()
if hasattr(buffer, "community_url"):
item = buffer.get_item_from_instance()
else:
item = buffer.get_item()
if buffer.type == "user":
users = [item.acct]
elif buffer.type == "baseBuffer":
@@ -399,3 +407,16 @@ class Handler(object):
buffer.session.settings.write()
communities_position =controller.view.search("communities", buffer.session.get_name())
pub.sendMessage("createBuffer", buffer_type="CommunityBuffer", session_type=buffer.session.type, buffer_title=title, parent_tab=communities_position, start=True, kwargs=dict(parent=controller.view.nb, function="timeline", name=tl_info, sessionObject=buffer.session, account=buffer.session.get_name(), sound="tweet_timeline.ogg", community_url=url, timeline=bufftype))
def create_filter(self, controller, buffer):
filterController = create_filter.CreateFilterController(buffer.session)
try:
filter = filterController.get_response()
except MastodonError as error:
log.exception("Error adding filter.")
commonMessageDialogs.error_adding_filter()
return self.create_filter(controller=controller, buffer=buffer)
def manage_filters(self, controller, buffer):
manageFiltersController = manage_filters.ManageFiltersController(buffer.session)
manageFiltersController.get_response()
+29 -3
View File
@@ -5,6 +5,7 @@ import wx
import widgetUtils
import config
import output
import languageHandler
from twitter_text import parse_tweet, config
from mastodon import MastodonError
from controller import messages
@@ -32,9 +33,12 @@ class post(messages.basicMessage):
self.max = session.char_limit
self.title = title
self.session = session
self.message = postDialogs.Post(caption=caption, text=text, *args, **kwargs)
langs = self.session.supported_languages
display_langs = [l.name for l in langs]
self.message = postDialogs.Post(caption=caption, text=text, languages=display_langs, *args, **kwargs)
self.message.SetTitle(title)
self.message.text.SetInsertionPoint(len(self.message.text.GetValue()))
self.set_language(self.session.default_language)
widgetUtils.connect_event(self.message.spellcheck, widgetUtils.BUTTON_PRESSED, self.spellcheck)
widgetUtils.connect_event(self.message.text, widgetUtils.ENTERED_TEXT, self.text_processor)
widgetUtils.connect_event(self.message.spoiler, widgetUtils.ENTERED_TEXT, self.text_processor)
@@ -70,7 +74,21 @@ class post(messages.basicMessage):
self.add_post(event=None, update_gui=False)
return self.thread
def set_post_data(self, visibility, data):
def set_language(self, language=None):
""" Attempt to set the default language for a post. """
# language can be provided in a post (replying or recovering from errors).
# Also it can be provided in user preferences (retrieved in the session).
# If no language is provided, let's fallback to TWBlue's user language.
if language != None:
language_code = language
else:
# Let's cut langcode_VARIANT to ISO-639 two letter code only.
language_code = languageHandler.curLang[:2]
for lang in self.session.supported_languages:
if lang.code == language_code:
self.message.language.SetStringSelection(lang.name)
def set_post_data(self, visibility, data, language):
if len(data) == 0:
return
if len(data) > 1:
@@ -87,6 +105,7 @@ class post(messages.basicMessage):
self.message.on_sensitivity_changed()
for attachment in self.attachments:
self.message.add_item(item=[attachment["file"], attachment["type"], attachment["description"]])
self.set_language(language)
self.text_processor()
def text_processor(self, *args, **kwargs):
@@ -231,6 +250,14 @@ class post(messages.basicMessage):
visibility_settings = ["public", "unlisted", "private", "direct"]
return visibility_settings[self.message.visibility.GetSelection()]
def get_language(self):
langs = self.session.supported_languages
lang = self.message.language.GetSelection()
if lang >= 0:
print(langs[lang].code)
return langs[lang].code
return None
def set_visibility(self, setting):
visibility_settings = ["public", "unlisted", "private", "direct"]
visibility_setting = visibility_settings.index(setting)
@@ -259,7 +286,6 @@ class viewPost(post):
source = source_obj.get("name")
self.message = postDialogs.viewPost(text=text, boosts_count=boost_count, favs_count=favs_count, source=source, date=date, privacy=privacy)
participants = [post.account.id] + [account.id for account in post.mentions]
print(post, participants)
if self.session.db["user_id"] in participants:
self.message.mute.Enable(True)
if post.muted:
@@ -8,8 +8,8 @@ class autocompletionScanDialog(widgetUtils.BaseDialog):
super(autocompletionScanDialog, self).__init__(parent=None, id=-1, title=_(u"Autocomplete users' settings"))
panel = wx.Panel(self)
sizer = wx.BoxSizer(wx.VERTICAL)
self.followers = wx.CheckBox(panel, -1, _("Add followers to database"))
self.friends = wx.CheckBox(panel, -1, _("Add following to database"))
self.followers = wx.CheckBox(panel, -1, _("Add &followers to database"))
self.friends = wx.CheckBox(panel, -1, _("Add f&ollowing to database"))
sizer.Add(self.followers, 0, wx.ALL, 5)
sizer.Add(self.friends, 0, wx.ALL, 5)
ok = wx.Button(panel, wx.ID_OK)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+6
View File
@@ -17,6 +17,9 @@ def compose_post(post, db, settings, relative_times, show_screen_names, safe=Tru
text = _("Boosted from @{}: {}").format(post.reblog.account.acct, templates.process_text(post.reblog, safe=safe))
else:
text = templates.process_text(post, safe=safe)
filtered = utils.evaluate_filters(post=post, current_context="home")
if filtered != None:
text = _("hidden by filter {}").format(filtered)
source = post.get("application", "")
# "" means remote user, None for legacy apps so we should cover both sides.
if source != None and source != "":
@@ -73,4 +76,7 @@ def compose_notification(notification, db, settings, relative_times, show_screen
text = _("A poll in which you have voted has expired: {status}").format(status=",".join(compose_post(notification.status, db, settings, relative_times, show_screen_names, safe=safe)))
elif notification.type == "follow_request":
text = _("{username} wants to follow you.").format(username=user)
filtered = utils.evaluate_filters(post=notification, current_context="notifications")
if filtered != None:
text = _("hidden by filter {}").format(filtered)
return [user, text, ts]
+18 -8
View File
@@ -11,7 +11,7 @@ import config
import config_utils
import output
import application
from mastodon import MastodonError, MastodonAPIError, MastodonNotFoundError, MastodonUnauthorizedError
from mastodon import MastodonError, MastodonAPIError, MastodonNotFoundError, MastodonUnauthorizedError, MastodonVersionError
from pubsub import pub
from mysc.thread_utils import call_threaded
from sessions import base
@@ -19,7 +19,7 @@ from sessions.mastodon import utils, streaming
log = logging.getLogger("sessions.mastodonSession")
MASTODON_VERSION = "4.0.1"
MASTODON_VERSION = "4.3.2"
class Session(base.baseSession):
version_check_mode = "created"
@@ -29,6 +29,7 @@ class Session(base.baseSession):
super(Session, self).__init__(*args, **kwargs)
self.config_spec = "mastodon.defaults"
self.supported_languages = []
self.default_language = None
self.type = "mastodon"
self.db["pagination_info"] = dict()
self.char_limit = 500
@@ -48,6 +49,9 @@ class Session(base.baseSession):
credentials = self.api.account_verify_credentials()
self.db["user_name"] = credentials["username"]
self.db["user_id"] = credentials["id"]
if hasattr(credentials, "source") and hasattr(credentials.source, "language"):
log.info(f"Setting default language on account {credentials.username} to {credentials.source.language}")
self.default_language = credentials.source.language
self.settings["mastodon"]["user_name"] = credentials["username"]
self.logged = True
log.debug("Logged.")
@@ -113,7 +117,10 @@ class Session(base.baseSession):
self.db["utc_offset"] = offset
instance = self.api.instance()
if len(self.supported_languages) == 0:
self.supported_languages = instance.languages
try:
self.supported_languages = self.api.instance_languages()
except (Exception, MastodonVersionError):
pass
self.get_lists()
self.get_muted_users()
# determine instance custom characters limit.
@@ -163,6 +170,9 @@ class Session(base.baseSession):
log.error("Ignoring an older tweet... Last id: {0}, tweet id: {1}".format(last_id, i.id))
continue
if utils.find_item(i, self.db[name]) == None:
filter_status = utils.evaluate_filters(post=i, current_context=utils.get_current_context(name))
if filter_status == "hide":
continue
if self.settings["general"]["reverse_timelines"] == False: objects.append(i)
else: objects.insert(0, i)
num = num+1
@@ -207,17 +217,17 @@ class Session(base.baseSession):
self.sound.play(_sound)
return val
def send_post(self, reply_to=None, visibility=None, posts=[]):
def send_post(self, reply_to=None, visibility=None, language=None, posts=[]):
""" Convenience function to send a thread. """
in_reply_to_id = reply_to
for obj in posts:
text = obj.get("text")
if len(obj["attachments"]) == 0:
try:
item = self.api_call(call_name="status_post", status=text, _sound="tweet_send.ogg", in_reply_to_id=in_reply_to_id, visibility=visibility, sensitive=obj["sensitive"], spoiler_text=obj["spoiler_text"])
item = self.api_call(call_name="status_post", status=text, _sound="tweet_send.ogg", in_reply_to_id=in_reply_to_id, visibility=visibility, sensitive=obj["sensitive"], spoiler_text=obj["spoiler_text"], language=language)
# If it fails, let's basically send an event with all passed info so we will catch it later.
except Exception as e:
pub.sendMessage("mastodon.error_post", name=self.get_name(), reply_to=reply_to, visibility=visibility, posts=posts)
pub.sendMessage("mastodon.error_post", name=self.get_name(), reply_to=reply_to, visibility=visibility, posts=posts, lang=language)
return
if item != None:
in_reply_to_id = item["id"]
@@ -231,11 +241,11 @@ class Session(base.baseSession):
for i in obj["attachments"]:
media = self.api_call("media_post", media_file=i["file"], description=i["description"], synchronous=True)
media_ids.append(media.id)
item = self.api_call(call_name="status_post", status=text, _sound="tweet_send.ogg", in_reply_to_id=in_reply_to_id, media_ids=media_ids, visibility=visibility, poll=poll, sensitive=obj["sensitive"], spoiler_text=obj["spoiler_text"])
item = self.api_call(call_name="status_post", status=text, _sound="tweet_send.ogg", in_reply_to_id=in_reply_to_id, media_ids=media_ids, visibility=visibility, poll=poll, sensitive=obj["sensitive"], spoiler_text=obj["spoiler_text"], language=language)
if item != None:
in_reply_to_id = item["id"]
except Exception as e:
pub.sendMessage("mastodon.error_post", name=self.get_name(), reply_to=reply_to, visibility=visibility, posts=posts)
pub.sendMessage("mastodon.error_post", name=self.get_name(), reply_to=reply_to, visibility=visibility, posts=posts, lang=language)
return
def get_name(self):
+6
View File
@@ -75,6 +75,9 @@ def render_post(post, template, settings, relative_times=False, offset_hours=0):
else:
text = process_text(post, safe=False)
safe_text = process_text(post)
filtered = utils.evaluate_filters(post=post, current_context="home")
if filtered != None:
text = _("hidden by filter {}").format(filtered)
visibility_settings = dict(public=_("Public"), unlisted=_("Not listed"), private=_("Followers only"), direct=_("Direct"))
visibility = visibility_settings.get(post.visibility)
available_data.update(lang=post.language, text=text, safe_text=safe_text, visibility=visibility)
@@ -161,6 +164,9 @@ def render_notification(notification, template, post_template, settings, relativ
text = _("A poll in which you have voted has expired: {status}").format(status=render_post(notification.status, post_template, settings, relative_times, offset_hours))
elif notification.type == "follow_request":
text = _("wants to follow you.")
filtered = utils.evaluate_filters(post=notification, current_context="notifications")
if filtered != None:
text = _("hidden by filter {}").format(filtered)
available_data.update(text=text)
result = Template(_(template)).safe_substitute(**available_data)
result = result.replace(" . ", "")
+57
View File
@@ -1,6 +1,7 @@
import re
import demoji
from html.parser import HTMLParser
from datetime import datetime, timezone
url_re = re.compile('<a\s*href=[\'|"](.*?)[\'"].*?>')
@@ -91,3 +92,59 @@ def demoji_user(name, settings):
user = re.sub(r":(.*?):", "", user)
return user
return name
def get_current_context(buffer: str) -> str:
""" Gets the name of a buffer and returns the context it belongs to. useful for filtering. """
if buffer == "home_timeline":
return "home"
elif buffer == "mentions" or buffer == "notifications":
return "notifications"
def evaluate_filters(post: dict, current_context: str) -> str | None:
"""
Evaluates the 'filtered' attribute of a Mastodon post to determine its visibility,
considering the current context, expiration, and matches (keywords or status).
Parameters:
post (dict): A dictionary representing a Mastodon post.
current_context (str): The context in which the post is displayed
(e.g., "home", "notifications", "public", "thread", or "profile").
Returns:
- "hide" if any applicable filter indicates the post should be hidden.
- A string with the filter's title if an applicable "warn" filter is present.
- None if no applicable filters are found, meaning the post should be shown normally.
"""
filters = post.get("filtered", None)
if filters == None:
return
warn_filter_title = None
now = datetime.now(timezone.utc)
for result in filters:
filter_data = result.get("filter", {})
# Check if the filter applies to the current context.
filter_contexts = filter_data.get("context", [])
if current_context not in filter_contexts:
continue # Skip filters not applicable in this context
# Check if the filter has expired.
expires_at = filter_data.get("expires_at")
if expires_at is not None:
# If expires_at is a string, attempt to parse it.
if isinstance(expires_at, str):
try:
expiration_dt = datetime.fromisoformat(expires_at)
except ValueError:
continue # Skip if the date format is invalid
else:
expiration_dt = expires_at
if expiration_dt < now:
continue # Skip expired filters
action = filter_data.get("filter_action", "")
if action == "hide":
return "hide"
elif action == "warn":
title = filter_data.get("title", "")
warn_filter_title = title if title else "warn"
if warn_filter_title:
return warn_filter_title
return None
+13 -1
View File
@@ -46,4 +46,16 @@ def cant_update_source() -> wx.MessageDialog:
return dlg.ShowModal()
def invalid_instance():
return wx.MessageDialog(None, _("the provided instance is invalid. Please try again."), _("Invalid instance"), wx.ICON_ERROR).ShowModal()
return wx.MessageDialog(None, _("the provided instance is invalid. Please try again."), _("Invalid instance"), wx.ICON_ERROR).ShowModal()
def error_adding_filter():
return wx.MessageDialog(None, _("TWBlue was unable to add or update the filter with the specified settings. Please try again."), _("Error"), wx.ICON_ERROR).ShowModal()
def error_loading_filters():
return wx.MessageDialog(None, _("TWBlue was unable to load your filters from the instance. Please try again."), _("Error"), wx.ICON_ERROR).ShowModal()
def remove_filter():
dlg = wx.MessageDialog(None, _("Do you really want to delete this filter ?"), _("Delete filter"), wx.ICON_QUESTION|wx.YES_NO)
return dlg.ShowModal()
def error_removing_filters():
return wx.MessageDialog(None, _("TWBlue was unable to remove the filter you specified. Please try again."), _("Error"), wx.ICON_ERROR).ShowModal()
+27 -27
View File
@@ -12,43 +12,43 @@ class general(wx.Panel, baseDialog.BaseWXDialog):
def __init__(self, parent, languages,keymaps):
super(general, self).__init__(parent)
sizer = wx.BoxSizer(wx.VERTICAL)
language = wx.StaticText(self, -1, _(u"Language"))
language = wx.StaticText(self, -1, _(u"&Language"))
self.language = wx.ListBox(self, -1, choices=languages)
self.language.SetSize(self.language.GetBestSize())
langBox = wx.BoxSizer(wx.HORIZONTAL)
langBox.Add(language, 0, wx.ALL, 5)
langBox.Add(self.language, 0, wx.ALL, 5)
sizer.Add(langBox, 0, wx.ALL, 5)
self.ask_at_exit = wx.CheckBox(self, -1, _(U"ask before exiting {0}").format(application.name,))
self.ask_at_exit = wx.CheckBox(self, -1, _(U"&Ask before exiting {0}").format(application.name,))
sizer.Add(self.ask_at_exit, 0, wx.ALL, 5)
self.no_streaming = wx.CheckBox(self, -1, _(U"Disable Streaming functions"))
self.no_streaming = wx.CheckBox(self, -1, _(U"&Disable Streaming functions"))
sizer.Add(self.no_streaming, 0, wx.ALL, 5)
updatePeriodBox = wx.BoxSizer(wx.HORIZONTAL)
updatePeriodBox.Add(wx.StaticText(self, -1, _(u"Buffer update interval, in minutes")), 0, wx.ALL, 5)
updatePeriodBox.Add(wx.StaticText(self, -1, _(u"&Buffer update interval, in minutes")), 0, wx.ALL, 5)
self.update_period = wx.SpinCtrl(self, wx.ID_ANY)
self.update_period.SetRange(1, 30)
self.update_period.SetSize(self.update_period.GetBestSize())
updatePeriodBox.Add(self.update_period, 0, wx.ALL, 5)
sizer.Add(updatePeriodBox, 0, wx.ALL, 5)
self.play_ready_sound = wx.CheckBox(self, -1, _(U"Play a sound when {0} launches").format(application.name,))
self.play_ready_sound = wx.CheckBox(self, -1, _(U"Pla&y a sound when {0} launches").format(application.name,))
sizer.Add(self.play_ready_sound, 0, wx.ALL, 5)
self.speak_ready_msg = wx.CheckBox(self, -1, _(U"Speak a message when {0} launches").format(application.name,))
self.speak_ready_msg = wx.CheckBox(self, -1, _(U"Sp&eak a message when {0} launches").format(application.name,))
sizer.Add(self.speak_ready_msg, 0, wx.ALL, 5)
self.use_invisible_shorcuts = wx.CheckBox(self, -1, _(u"Use invisible interface's keyboard shortcuts while GUI is visible"))
self.use_invisible_shorcuts = wx.CheckBox(self, -1, _(u"&Use invisible interface's keyboard shortcuts while GUI is visible"))
sizer.Add(self.use_invisible_shorcuts, 0, wx.ALL, 5)
self.disable_sapi5 = wx.CheckBox(self, -1, _(u"Activate Sapi5 when any other screen reader is not being run"))
self.disable_sapi5 = wx.CheckBox(self, -1, _(u"A&ctivate Sapi5 when any other screen reader is not being run"))
sizer.Add(self.disable_sapi5, 0, wx.ALL, 5)
self.hide_gui = wx.CheckBox(self, -1, _(u"Hide GUI on launch"))
self.hide_gui = wx.CheckBox(self, -1, _(u"&Hide GUI on launch"))
sizer.Add(self.hide_gui, 0, wx.ALL, 5)
self.read_long_posts_in_gui = wx.CheckBox(self, wx.ID_ANY, _("Read long posts in GUI"))
self.read_long_posts_in_gui = wx.CheckBox(self, wx.ID_ANY, _("&Read long posts in GUI"))
sizer.Add(self.read_long_posts_in_gui, 0, wx.ALL, 5)
kmbox = wx.BoxSizer(wx.VERTICAL)
km_label = wx.StaticText(self, -1, _(u"Keymap"))
km_label = wx.StaticText(self, -1, _(u"&Keymap"))
self.km = wx.ComboBox(self, -1, choices=keymaps, style=wx.CB_READONLY)
self.km.SetSize(self.km.GetBestSize())
kmbox.Add(km_label, 0, wx.ALL, 5)
kmbox.Add(self.km, 0, wx.ALL, 5)
self.check_for_updates = wx.CheckBox(self, -1, _(U"Check for updates when {0} launches").format(application.name,))
self.check_for_updates = wx.CheckBox(self, -1, _(U"Check for u&pdates when {0} launches").format(application.name,))
sizer.Add(self.check_for_updates, 0, wx.ALL, 5)
sizer.Add(kmbox, 0, wx.ALL, 5)
self.SetSizer(sizer)
@@ -58,32 +58,32 @@ class proxy(wx.Panel, baseDialog.BaseWXDialog):
def __init__(self, parent, proxyTypes):
super(proxy, self).__init__(parent)
sizer = wx.BoxSizer(wx.VERTICAL)
type=wx.StaticText(self, wx.ID_ANY, _(u"Proxy type: "))
type=wx.StaticText(self, wx.ID_ANY, _(u"Proxy &type: "))
self.type=wx.ComboBox(self, -1, choices=proxyTypes, style=wx.CB_READONLY)
self.type.SetSize(self.type.GetBestSize())
typeBox = wx.BoxSizer(wx.HORIZONTAL)
typeBox.Add(type, 0, wx.ALL, 5)
typeBox.Add(self.type, 0, wx.ALL, 5)
sizer.Add(typeBox, 0, wx.ALL, 5)
lbl = wx.StaticText(self, wx.ID_ANY, _(u"Proxy server: "))
lbl = wx.StaticText(self, wx.ID_ANY, _(u"Proxy s&erver: "))
self.server = wx.TextCtrl(self, -1)
serverBox = wx.BoxSizer(wx.HORIZONTAL)
serverBox.Add(lbl, 0, wx.ALL, 5)
serverBox.Add(self.server, 0, wx.ALL, 5)
sizer.Add(serverBox, 0, wx.ALL, 5)
lbl = wx.StaticText(self, wx.ID_ANY, _(u"Port: "))
lbl = wx.StaticText(self, wx.ID_ANY, _(u"&Port: "))
self.port = wx.SpinCtrl(self, wx.ID_ANY, min=1, max=65535)
portBox = wx.BoxSizer(wx.HORIZONTAL)
portBox.Add(lbl, 0, wx.ALL, 5)
portBox.Add(self.port, 0, wx.ALL, 5)
sizer.Add(portBox, 0, wx.ALL, 5)
lbl = wx.StaticText(self, wx.ID_ANY, _(u"User: "))
lbl = wx.StaticText(self, wx.ID_ANY, _(u"&User: "))
self.user = wx.TextCtrl(self, wx.ID_ANY)
userBox = wx.BoxSizer(wx.HORIZONTAL)
userBox.Add(lbl, 0, wx.ALL, 5)
userBox.Add(self.user, 0, wx.ALL, 5)
sizer.Add(userBox, 0, wx.ALL, 5)
lbl = wx.StaticText(self, wx.ID_ANY, _(u"Password: "))
lbl = wx.StaticText(self, wx.ID_ANY, _(u"P&assword: "))
self.password = wx.TextCtrl(self, wx.ID_ANY, style=wx.TE_PASSWORD)
passwordBox = wx.BoxSizer(wx.HORIZONTAL)
passwordBox.Add(lbl, 0, wx.ALL, 5)
@@ -95,9 +95,9 @@ class reporting(wx.Panel, baseDialog.BaseWXDialog):
def __init__(self, parent):
super(reporting, self).__init__(parent)
sizer = wx.BoxSizer(wx.VERTICAL)
self.speech_reporting = wx.CheckBox(self, wx.ID_ANY, _(U"Enable automatic speech feedback"))
self.speech_reporting = wx.CheckBox(self, wx.ID_ANY, _(U"Enable automatic s&peech feedback"))
sizer.Add(self.speech_reporting, 0, wx.ALL, 5)
self.braille_reporting = wx.CheckBox(self, wx.ID_ANY, _(U"Enable automatic Braille feedback"))
self.braille_reporting = wx.CheckBox(self, wx.ID_ANY, _(U"Enable automatic &Braille feedback"))
sizer.Add(self.braille_reporting, 0, wx.ALL, 5)
self.SetSizer(sizer)
@@ -108,9 +108,9 @@ class other_buffers(wx.Panel):
self.buffers = widgets.list(self, _(u"Buffer"), _(u"Name"), _(u"Status"), style=wx.LC_SINGLE_SEL|wx.LC_REPORT)
sizer.Add(self.buffers.list, 0, wx.ALL, 5)
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
self.toggle_state = wx.Button(self, -1, _(u"Show/hide"))
self.up = wx.Button(self, -1, _(u"Move up"))
self.down = wx.Button(self, -1, _(u"Move down"))
self.toggle_state = wx.Button(self, -1, _(u"S&how/hide"))
self.up = wx.Button(self, -1, _(u"Move &up"))
self.down = wx.Button(self, -1, _(u"Move &down"))
btnSizer.Add(self.toggle_state, 0, wx.ALL, 5)
btnSizer.Add(self.up, 0, wx.ALL, 5)
btnSizer.Add(self.down, 0, wx.ALL, 5)
@@ -202,19 +202,19 @@ class TranslatorPanel(wx.Panel, baseDialog.BaseWXDialog):
super(TranslatorPanel, self).__init__(parent)
sizer = wx.BoxSizer(wx.VERTICAL)
lbl_libre_url = wx.StaticText(self, wx.ID_ANY, _(u"LibreTranslate API URL: "))
lbl_libre_url = wx.StaticText(self, wx.ID_ANY, _(u"&LibreTranslate API URL: "))
self.libre_api_url = wx.TextCtrl(self, wx.ID_ANY)
libreUrlBox = wx.BoxSizer(wx.HORIZONTAL)
libreUrlBox.Add(lbl_libre_url, 0, wx.ALL, 5)
libreUrlBox.Add(self.libre_api_url, 1, wx.ALL | wx.EXPAND, 5)
sizer.Add(libreUrlBox, 0, wx.ALL | wx.EXPAND, 5)
lbl_libre_api_key = wx.StaticText(self, wx.ID_ANY, _(u"LibreTranslate API Key (optional): "))
lbl_libre_api_key = wx.StaticText(self, wx.ID_ANY, _(u"LibreTranslate API &Key (optional): "))
self.libre_api_key = wx.TextCtrl(self, wx.ID_ANY)
libreApiKeyBox = wx.BoxSizer(wx.HORIZONTAL)
libreApiKeyBox.Add(lbl_libre_api_key, 0, wx.ALL, 5)
libreApiKeyBox.Add(self.libre_api_key, 1, wx.ALL | wx.EXPAND, 5)
sizer.Add(libreApiKeyBox, 0, wx.ALL | wx.EXPAND, 5)
lbl_deepL_api_key = wx.StaticText(self, wx.ID_ANY, _(u"DeepL API Key: "))
lbl_deepL_api_key = wx.StaticText(self, wx.ID_ANY, _(u"&DeepL API Key: "))
self.deepL_api_key = wx.TextCtrl(self, wx.ID_ANY)
deepLApiKeyBox = wx.BoxSizer(wx.HORIZONTAL)
deepLApiKeyBox.Add(lbl_deepL_api_key, 0, wx.ALL, 5)
@@ -248,9 +248,9 @@ class configurationDialog(baseDialog.BaseWXDialog):
def realize(self):
self.sizer.Add(self.notebook, 0, wx.ALL, 5)
ok_cancel_box = wx.BoxSizer(wx.HORIZONTAL)
ok = wx.Button(self.panel, wx.ID_OK, _(u"Save"))
ok = wx.Button(self.panel, wx.ID_OK, _(u"&Save"))
ok.SetDefault()
cancel = wx.Button(self.panel, wx.ID_CANCEL, _(u"Close"))
cancel = wx.Button(self.panel, wx.ID_CANCEL, _(u"&Close"))
self.SetEscapeId(cancel.GetId())
ok_cancel_box.Add(ok, 0, wx.ALL, 5)
ok_cancel_box.Add(cancel, 0, wx.ALL, 5)
@@ -14,8 +14,8 @@ class CommunityTimeline(wx.Dialog):
communitySizer.Add(self.url, 0, wx.ALL, 5)
actionSizer = wx.BoxSizer(wx.VERTICAL)
label2 = wx.StaticText(panel, -1, _(u"Buffer type"))
self.local= wx.RadioButton(panel, -1, _("Local timeline"), style=wx.RB_GROUP)
self.federated= wx.RadioButton(panel, -1, _("Federated Timeline"))
self.local= wx.RadioButton(panel, -1, _("&Local timeline"), style=wx.RB_GROUP)
self.federated= wx.RadioButton(panel, -1, _("&Federated Timeline"))
hSizer = wx.BoxSizer(wx.HORIZONTAL)
hSizer.Add(label2, 0, wx.ALL, 5)
actionSizer.Add(self.local, 0, wx.ALL, 5)
+25 -25
View File
@@ -12,49 +12,49 @@ class generalAccount(wx.Panel, baseDialog.BaseWXDialog):
super(generalAccount, self).__init__(parent)
sizer = wx.BoxSizer(wx.VERTICAL)
userAutocompletionBox = wx.StaticBox(self, label=_("User autocompletion settings"))
self.userAutocompletionScan = wx.Button(self, wx.ID_ANY, _("Scan account and add followers and following users to the user autocompletion database"))
self.userAutocompletionManage = wx.Button(self, wx.ID_ANY, _("Manage autocompletion database"))
self.userAutocompletionScan = wx.Button(self, wx.ID_ANY, _("Scan acc&ount and add followers and following users to the user autocompletion database"))
self.userAutocompletionManage = wx.Button(self, wx.ID_ANY, _("&Manage autocompletion database"))
autocompletionSizer = wx.StaticBoxSizer(userAutocompletionBox, wx.HORIZONTAL)
autocompletionSizer.Add(self.userAutocompletionScan, 0, wx.ALL, 5)
autocompletionSizer.Add(self.userAutocompletionManage, 0, wx.ALL, 5)
sizer.Add(autocompletionSizer, 0, wx.ALL, 5)
self.disable_streaming = wx.CheckBox(self, wx.ID_ANY, _("Disable Streaming API endpoints"))
self.disable_streaming = wx.CheckBox(self, wx.ID_ANY, _("&Disable Streaming API endpoints"))
sizer.Add(self.disable_streaming, 0, wx.ALL, 5)
self.relative_time = wx.CheckBox(self, wx.ID_ANY, _("Relative timestamps"))
self.relative_time = wx.CheckBox(self, wx.ID_ANY, _("&Relative timestamps"))
sizer.Add(self.relative_time, 0, wx.ALL, 5)
self.read_preferences_from_instance = wx.CheckBox(self, wx.ID_ANY, _("Read preferences from instance (default visibility when publishing and displaying sensitive content)"))
self.read_preferences_from_instance = wx.CheckBox(self, wx.ID_ANY, _("R&ead preferences from instance (default visibility when publishing and displaying sensitive content)"))
sizer.Add(self.read_preferences_from_instance, 0, wx.ALL, 5)
itemsPerCallBox = wx.BoxSizer(wx.HORIZONTAL)
itemsPerCallBox.Add(wx.StaticText(self, -1, _("Items on each API call")), 0, wx.ALL, 5)
itemsPerCallBox.Add(wx.StaticText(self, -1, _("&Items on each API call")), 0, wx.ALL, 5)
self.itemsPerApiCall = wx.SpinCtrl(self, wx.ID_ANY)
self.itemsPerApiCall.SetRange(0, 40)
self.itemsPerApiCall.SetSize(self.itemsPerApiCall.GetBestSize())
itemsPerCallBox.Add(self.itemsPerApiCall, 0, wx.ALL, 5)
sizer.Add(itemsPerCallBox, 0, wx.ALL, 5)
self.reverse_timelines = wx.CheckBox(self, wx.ID_ANY, _("Inverted buffers: The newest items will be shown at the beginning while the oldest at the end"))
self.reverse_timelines = wx.CheckBox(self, wx.ID_ANY, _("I&nverted buffers: The newest items will be shown at the beginning while the oldest at the end"))
sizer.Add(self.reverse_timelines, 0, wx.ALL, 5)
self.ask_before_boost = wx.CheckBox(self, wx.ID_ANY, _("Ask confirmation before boosting a post"))
self.ask_before_boost = wx.CheckBox(self, wx.ID_ANY, _("&Ask confirmation before boosting a post"))
sizer.Add(self.ask_before_boost, 0, wx.ALL, 5)
self.show_screen_names = wx.CheckBox(self, wx.ID_ANY, _("Show screen names instead of full names"))
self.show_screen_names = wx.CheckBox(self, wx.ID_ANY, _("S&how screen names instead of full names"))
sizer.Add(self.show_screen_names, 0, wx.ALL, 5)
self.hide_emojis = wx.CheckBox(self, wx.ID_ANY, _("hide emojis in usernames"))
self.hide_emojis = wx.CheckBox(self, wx.ID_ANY, _("Hide e&mojis in usernames"))
sizer.Add(self.hide_emojis, 0, wx.ALL, 5)
PersistSizeLabel = wx.StaticText(self, -1, _("Number of items per buffer to cache in database (0 to disable caching, blank for unlimited)"))
PersistSizeLabel = wx.StaticText(self, -1, _("&Number of items per buffer to cache in database (0 to disable caching, blank for unlimited)"))
self.persist_size = wx.TextCtrl(self, -1)
sizer.Add(PersistSizeLabel, 0, wx.ALL, 5)
sizer.Add(self.persist_size, 0, wx.ALL, 5)
self.load_cache_in_memory = wx.CheckBox(self, wx.NewId(), _("Load cache for items in memory (much faster in big datasets but requires more RAM)"))
self.load_cache_in_memory = wx.CheckBox(self, wx.NewId(), _("&Load cache for items in memory (much faster in big datasets but requires more RAM)"))
self.SetSizer(sizer)
class templates(wx.Panel, baseDialog.BaseWXDialog):
def __init__(self, parent, post_template, conversation_template, person_template):
super(templates, self).__init__(parent)
sizer = wx.BoxSizer(wx.VERTICAL)
self.post = wx.Button(self, wx.ID_ANY, _("Edit template for posts. Current template: {}").format(post_template))
self.post = wx.Button(self, wx.ID_ANY, _("Edit template for &posts. Current template: {}").format(post_template))
sizer.Add(self.post, 0, wx.ALL, 5)
self.conversation = wx.Button(self, wx.ID_ANY, _("Edit template for conversations. Current template: {}").format(conversation_template))
self.conversation = wx.Button(self, wx.ID_ANY, _("Edit template for c&onversations. Current template: {}").format(conversation_template))
sizer.Add(self.conversation, 0, wx.ALL, 5)
self.person = wx.Button(self, wx.ID_ANY, _("Edit template for persons. Current template: {}").format(person_template))
self.person = wx.Button(self, wx.ID_ANY, _("Edit template for p&ersons. Current template: {}").format(person_template))
sizer.Add(self.person, 0, wx.ALL, 5)
self.SetSizer(sizer)
@@ -62,7 +62,7 @@ class sound(wx.Panel):
def __init__(self, parent, input_devices, output_devices, soundpacks):
wx.Panel.__init__(self, parent)
sizer = wx.BoxSizer(wx.VERTICAL)
volume = wx.StaticText(self, -1, _(u"Volume"))
volume = wx.StaticText(self, -1, _(u"&Volume"))
self.volumeCtrl = wx.Slider(self)
# Connect a key handler here to handle volume slider being inverted when moving with up and down arrows.
# see https://github.com/manuelcortez/TWBlue/issues/261
@@ -73,16 +73,16 @@ class sound(wx.Panel):
volumeBox.Add(volume, 0, wx.ALL, 5)
volumeBox.Add(self.volumeCtrl, 0, wx.ALL, 5)
sizer.Add(volumeBox, 0, wx.ALL, 5)
self.session_mute = wx.CheckBox(self, -1, _(u"Session mute"))
self.session_mute = wx.CheckBox(self, -1, _(u"S&ession mute"))
sizer.Add(self.session_mute, 0, wx.ALL, 5)
output_label = wx.StaticText(self, -1, _(u"Output device"))
output_label = wx.StaticText(self, -1, _(u"&Output device"))
self.output = wx.ComboBox(self, -1, choices=output_devices, style=wx.CB_READONLY)
self.output.SetSize(self.output.GetBestSize())
outputBox = wx.BoxSizer(wx.HORIZONTAL)
outputBox.Add(output_label, 0, wx.ALL, 5)
outputBox.Add(self.output, 0, wx.ALL, 5)
sizer.Add(outputBox, 0, wx.ALL, 5)
input_label = wx.StaticText(self, -1, _(u"Input device"))
input_label = wx.StaticText(self, -1, _(u"&Input device"))
self.input = wx.ComboBox(self, -1, choices=input_devices, style=wx.CB_READONLY)
self.input.SetSize(self.input.GetBestSize())
inputBox = wx.BoxSizer(wx.HORIZONTAL)
@@ -90,15 +90,15 @@ class sound(wx.Panel):
inputBox.Add(self.input, 0, wx.ALL, 5)
sizer.Add(inputBox, 0, wx.ALL, 5)
soundBox = wx.BoxSizer(wx.VERTICAL)
soundpack_label = wx.StaticText(self, -1, _(u"Sound pack"))
soundpack_label = wx.StaticText(self, -1, _(u"Sound &pack"))
self.soundpack = wx.ComboBox(self, -1, choices=soundpacks, style=wx.CB_READONLY)
self.soundpack.SetSize(self.soundpack.GetBestSize())
soundBox.Add(soundpack_label, 0, wx.ALL, 5)
soundBox.Add(self.soundpack, 0, wx.ALL, 5)
sizer.Add(soundBox, 0, wx.ALL, 5)
self.indicate_audio = wx.CheckBox(self, -1, _("Indicate audio or video in posts with sound"))
self.indicate_audio = wx.CheckBox(self, -1, _("Indicate &audio or video in posts with sound"))
sizer.Add(self.indicate_audio, 0, wx.ALL, 5)
self.indicate_img = wx.CheckBox(self, -1, _("Indicate posts containing images with sound"))
self.indicate_img = wx.CheckBox(self, -1, _("Indicate posts containing i&mages with sound"))
sizer.Add(self.indicate_img, 0, wx.ALL, 5)
self.SetSizer(sizer)
@@ -121,7 +121,7 @@ class extrasPanel(wx.Panel):
def __init__(self, parent, ocr_languages=[], translation_languages=[]):
super(extrasPanel, self).__init__(parent)
mainSizer = wx.BoxSizer(wx.VERTICAL)
OCRBox = wx.StaticBox(self, label=_(u"Language for OCR"))
OCRBox = wx.StaticBox(self, label=_(u"&Language for OCR"))
self.ocr_lang = wx.ListBox(self, -1, choices=ocr_languages)
self.ocr_lang.SetSize(self.ocr_lang.GetBestSize())
ocrLanguageSizer = wx.StaticBoxSizer(OCRBox, wx.HORIZONTAL)
@@ -167,9 +167,9 @@ class configurationDialog(baseDialog.BaseWXDialog):
def realize(self):
self.sizer.Add(self.notebook, 0, wx.ALL, 5)
ok_cancel_box = wx.BoxSizer(wx.HORIZONTAL)
ok = wx.Button(self.panel, wx.ID_OK, _(u"Save"))
ok = wx.Button(self.panel, wx.ID_OK, _(u"&Save"))
ok.SetDefault()
cancel = wx.Button(self.panel, wx.ID_CANCEL, _(u"Close"))
cancel = wx.Button(self.panel, wx.ID_CANCEL, _(u"&Close"))
self.SetEscapeId(cancel.GetId())
ok_cancel_box.Add(ok, 0, wx.ALL, 5)
ok_cancel_box.Add(cancel, 0, wx.ALL, 5)
@@ -0,0 +1,146 @@
# -*- coding: utf-8 -*-
import wx
class FilterKeywordPanel(wx.Panel):
"""panel to handle filter's keywords. """
def __init__(self, parent):
super(FilterKeywordPanel, self).__init__(parent)
self.keywords = []
# Add widgets
list_panel = wx.Panel(self)
self.keyword_list = wx.ListCtrl(list_panel, wx.ID_ANY, style=wx.LC_REPORT | wx.LC_SINGLE_SEL)
self.keyword_list.InsertColumn(0, _("Keyword"))
self.keyword_list.InsertColumn(1, _("Whole word"))
self.keyword_list.SetColumnWidth(0, wx.LIST_AUTOSIZE_USEHEADER)
self.keyword_list.SetColumnWidth(1, wx.LIST_AUTOSIZE_USEHEADER)
list_sizer = wx.BoxSizer(wx.VERTICAL)
list_sizer.Add(self.keyword_list, 1, wx.EXPAND)
list_panel.SetSizer(list_sizer)
keyword_label = wx.StaticText(self, wx.ID_ANY, label=_("Keyword:"))
self.keyword_text = wx.TextCtrl(self, wx.ID_ANY)
keyword_sizer = wx.BoxSizer(wx.VERTICAL)
keyword_sizer.Add(keyword_label, 0, wx.RIGHT, 5)
keyword_sizer.Add(self.keyword_text, 0, wx.EXPAND)
self.whole_word_checkbox = wx.CheckBox(self, wx.ID_ANY, label=_("Whole word"))
self.add_button = wx.Button(self, wx.ID_ANY, label=_("Add"))
self.remove_button = wx.Button(self, wx.ID_ANY, label=_("Remove"))
input_sizer = wx.BoxSizer(wx.HORIZONTAL)
input_sizer.Add(keyword_sizer, 1, wx.RIGHT, 5)
input_sizer.Add(self.whole_word_checkbox, 0)
button_sizer = wx.BoxSizer(wx.HORIZONTAL)
button_sizer.Add(self.add_button, 0, wx.RIGHT, 5)
button_sizer.Add(self.remove_button, 0)
main_sizer = wx.BoxSizer(wx.VERTICAL)
main_sizer.Add(wx.StaticText(self, label=_("Palabras clave a filtrar:")), 0, wx.BOTTOM, 5)
main_sizer.Add(list_panel, 1, wx.EXPAND | wx.BOTTOM, 5)
main_sizer.Add(input_sizer, 0, wx.EXPAND | wx.BOTTOM, 5)
main_sizer.Add(button_sizer, 0, wx.ALIGN_RIGHT)
self.SetSizer(main_sizer)
def add_keyword(self, keyword, whole_word=False):
""" Adds a keyword to the list. """
index = self.keyword_list.InsertItem(self.keyword_list.GetItemCount(), keyword)
self.keyword_list.SetItem(index, 1, _("Yes") if whole_word else _("No"))
self.keyword_list.SetColumnWidth(0, wx.LIST_AUTOSIZE)
self.keyword_list.SetColumnWidth(1, wx.LIST_AUTOSIZE_USEHEADER)
self.keyword_text.Clear()
self.whole_word_checkbox.SetValue(False)
def remove_keyword(self):
""" Remove a keyword from the list. """
selection = self.keyword_list.GetFirstSelected()
if selection != -1:
self.keyword_list.DeleteItem(selection)
return selection
def set_keywords(self, keywords):
""" Set the list of keyword. """
self.keyword_list.DeleteAllItems()
for keyword_data in keywords:
if isinstance(keyword_data, dict):
kw = keyword_data.get('keyword', '')
whole_word = keyword_data.get('whole_word', False)
self.keywords.append({'keyword': kw, 'whole_word': whole_word})
index = self.keyword_list.InsertItem(self.keyword_list.GetItemCount(), kw)
self.keyword_list.SetItem(index, 1, _("Yes") if whole_word else _("No"))
else:
self.keywords.append({'keyword': keyword_data, 'whole_word': False})
index = self.keyword_list.InsertItem(self.keyword_list.GetItemCount(), keyword_data)
self.keyword_list.SetItem(index, 1, _("No"))
self.keyword_list.SetColumnWidth(0, wx.LIST_AUTOSIZE)
self.keyword_list.SetColumnWidth(1, wx.LIST_AUTOSIZE_USEHEADER)
class CreateFilterDialog(wx.Dialog):
def __init__(self, parent, title=_("New filter")):
super(CreateFilterDialog, self).__init__(parent, title=title, style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
self.contexts = ["home", "public", "notifications", "thread", "account"]
self.context_labels = {
"home": _("Home timeline"),
"public": _("Public statuses"),
"notifications": _("Notifications"),
"thread": _("Threads"),
"account": _("Profiles")
}
self.actions = ["hide", "warn"]
self.action_labels = {
"hide": _("Hide posts"),
"warn": _("Set a content warning to posts")
}
self.expiration_options = [
("never", _("Never")),
("hours", _("Hours")),
("days", _("Days")),
("weeks", _("Weeks")),
("months", _("months"))
]
main_sizer = wx.BoxSizer(wx.VERTICAL)
name_label = wx.StaticText(self, wx.ID_ANY, label=_("Title:"))
self.name_ctrl = wx.TextCtrl(self, wx.ID_ANY)
name_sizer = wx.BoxSizer(wx.HORIZONTAL)
name_sizer.Add(name_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
name_sizer.Add(self.name_ctrl, 1, wx.EXPAND)
main_sizer.Add(name_sizer, 0, wx.EXPAND | wx.ALL, 10)
static_box = wx.StaticBox(self, wx.ID_ANY, label=_("Apply to:"))
context_sizer = wx.StaticBoxSizer(static_box, wx.VERTICAL)
self.context_checkboxes = {}
context_grid = wx.FlexGridSizer(rows=3, cols=2, vgap=5, hgap=10)
for context in self.contexts:
checkbox = wx.CheckBox(static_box, wx.ID_ANY, label=self.context_labels[context])
self.context_checkboxes[context] = checkbox
context_grid.Add(checkbox)
context_sizer.Add(context_grid, 0, wx.ALL, 10)
main_sizer.Add(context_sizer, 0, wx.EXPAND | wx.ALL, 10)
action_label = wx.StaticText(self, wx.ID_ANY, label=_("Action:"))
self.action_choice = wx.Choice(self, wx.ID_ANY)
for action in self.actions:
self.action_choice.Append(self.action_labels[action])
action_sizer = wx.BoxSizer(wx.HORIZONTAL)
action_sizer.Add(action_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
action_sizer.Add(self.action_choice, 1)
main_sizer.Add(action_sizer, 0, wx.EXPAND | wx.ALL, 10)
expiration_label = wx.StaticText(self, wx.ID_ANY, label=_("Expires in:"))
self.expiration_choice = wx.Choice(self, wx.ID_ANY)
for e, label in self.expiration_options:
self.expiration_choice.Append(label)
self.expiration_value = wx.SpinCtrl(self, wx.ID_ANY, min=1, max=9999, initial=1)
self.expiration_value.Enable(False)
self.expiration_choice.Bind(wx.EVT_CHOICE, self.on_expiration_changed)
expiration_sizer = wx.BoxSizer(wx.HORIZONTAL)
expiration_sizer.Add(expiration_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
expiration_sizer.Add(self.expiration_choice, 1, wx.RIGHT, 5)
expiration_sizer.Add(self.expiration_value, 0)
main_sizer.Add(expiration_sizer, 0, wx.EXPAND | wx.ALL, 10)
self.keyword_panel = FilterKeywordPanel(self)
main_sizer.Add(self.keyword_panel, 1, wx.EXPAND | wx.ALL, 10)
button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL)
main_sizer.Add(button_sizer, 0, wx.EXPAND | wx.ALL, 10)
self.SetSizer(main_sizer)
self.SetSize((450, 550))
self.action_choice.SetSelection(0)
self.expiration_choice.SetSelection(0)
wx.CallAfter(self.name_ctrl.SetFocus)
def on_expiration_changed(self, event):
selection = self.expiration_choice.GetSelection()
self.expiration_value.Enable(selection != 0)
@@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
import wx
class ManageFiltersDialog(wx.Dialog):
"""
A dialog that displays a list of Mastodon filters and provides controls
to add, edit and remove them.
"""
def __init__(self, parent, title=_("Filters"), *args, **kwargs):
"""Initialize the filters view dialog. """
super(ManageFiltersDialog, self).__init__(parent, title=title, *args, **kwargs)
main_sizer = wx.BoxSizer(wx.VERTICAL)
self.filter_list = wx.ListCtrl(self, style=wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.BORDER_SUNKEN)
self.filter_list.InsertColumn(0, _("Title"), width=150)
self.filter_list.InsertColumn(1, _("Keywords"), width=80)
self.filter_list.InsertColumn(2, _("Contexts"), width=150)
self.filter_list.InsertColumn(3, _("Action"), width=100)
self.filter_list.InsertColumn(4, _("Expires"), width=150)
main_sizer.Add(self.filter_list, 1, wx.EXPAND | wx.ALL, 10)
button_sizer = wx.BoxSizer(wx.HORIZONTAL)
self.add_button = wx.Button(self, label=_("Add"))
self.edit_button = wx.Button(self, label=_("Edit"))
self.remove_button = wx.Button(self, label=_("Remove"))
close_button = wx.Button(self, wx.ID_CLOSE)
self.edit_button.Disable()
self.remove_button.Disable()
button_sizer.Add(self.add_button, 0, wx.RIGHT, 5)
button_sizer.Add(self.edit_button, 0, wx.RIGHT, 5)
button_sizer.Add(self.remove_button, 0, wx.RIGHT, 5)
button_sizer.Add((0, 0), 1, wx.EXPAND) # Spacer to push close button to right
button_sizer.Add(close_button, 0)
self.SetEscapeId(close_button.GetId())
main_sizer.Add(button_sizer, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.BOTTOM, 10)
self.SetSizer(main_sizer)
+7 -2
View File
@@ -2,7 +2,7 @@
import wx
class Post(wx.Dialog):
def __init__(self, caption=_("Post"), text="", *args, **kwds):
def __init__(self, caption=_("Post"), text="", languages=[], *args, **kwds):
super(Post, self).__init__(parent=None, id=wx.ID_ANY, *args, **kwds)
main_sizer = wx.BoxSizer(wx.VERTICAL)
post_sizer = wx.WrapSizer(wx.VERTICAL)
@@ -49,6 +49,12 @@ class Post(wx.Dialog):
self.visibility = wx.ComboBox(self, wx.ID_ANY, choices=[_("Public"), _("Not listed"), _("Followers only"), _("Direct")], style=wx.CB_DROPDOWN | wx.CB_READONLY | wx.CB_SIMPLE)
self.visibility.SetSelection(0)
visibility_sizer.Add(self.visibility, 0, 0, 0)
language_sizer = wx.BoxSizer(wx.HORIZONTAL)
post_actions_sizer.Add(language_sizer, 0, wx.RIGHT, 20)
lang_label = wx.StaticText(self, wx.ID_ANY, _("Language"))
language_sizer.Add(lang_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
self.language = wx.ComboBox(self, wx.ID_ANY, choices=languages, style=wx.CB_DROPDOWN | wx.CB_READONLY)
language_sizer.Add(self.language, 0, wx.ALIGN_CENTER_VERTICAL, 0)
self.add = wx.Button(self, wx.ID_ANY, _("A&dd"))
self.sensitive = wx.CheckBox(self, wx.ID_ANY, _("S&ensitive content"))
self.sensitive.SetValue(False)
@@ -165,7 +171,6 @@ class Post(wx.Dialog):
def unable_to_attach_poll(self, *args, **kwargs):
return wx.MessageDialog(self, _("You can add a poll or media files. In order to add your poll, please remove other attachments first."), _("Error adding poll"), wx.ICON_ERROR).ShowModal()
import wx
class viewPost(wx.Dialog):
def set_title(self, length):
+13 -13
View File
@@ -76,27 +76,27 @@ class ShowUserProfile(wx.Dialog):
mainSizer = wx.GridSizer(2, 5, 5)
# create widgets
nameLabel = wx.StaticText(self.panel, label=_("Name: "))
nameLabel = wx.StaticText(self.panel, label=_("&Name: "))
name = self.createTextCtrl(user.display_name, size=(200, 30))
mainSizer.Add(nameLabel, wx.SizerFlags().Center())
mainSizer.Add(name, wx.SizerFlags().Center())
urlLabel = wx.StaticText(self.panel, label=_("URL: "))
urlLabel = wx.StaticText(self.panel, label=_("&URL: "))
url = self.createTextCtrl(user.url, size=(200, 30))
mainSizer.Add(urlLabel, wx.SizerFlags().Center())
mainSizer.Add(url, wx.SizerFlags().Center())
bioLabel = wx.StaticText(self.panel, label=_("Bio: "))
bioLabel = wx.StaticText(self.panel, label=_("&Bio: "))
bio = self.createTextCtrl(html_filter(user.note), (400, 60))
mainSizer.Add(bioLabel, wx.SizerFlags().Center())
mainSizer.Add(bio, wx.SizerFlags().Center())
joinLabel = wx.StaticText(self.panel, label=_("Joined at: "))
joinLabel = wx.StaticText(self.panel, label=_("&Joined at: "))
joinText = self.createTextCtrl(user.created_at.strftime('%d %B, %Y'), (80, 30))
mainSizer.Add(joinLabel, wx.SizerFlags().Center())
mainSizer.Add(joinText, wx.SizerFlags().Center())
actions = wx.Button(self.panel, label=_("Actions"))
actions = wx.Button(self.panel, label=_("&Actions"))
actions.Bind(wx.EVT_BUTTON, self.onAction)
mainSizer.Add(actions, wx.SizerFlags().Center())
@@ -119,7 +119,7 @@ class ShowUserProfile(wx.Dialog):
self.fields = []
for num, field in enumerate(user.fields):
labelSizer = wx.BoxSizer(wx.HORIZONTAL)
labelLabel = wx.StaticText(self.panel, label=_("Field {} - Label: ").format(num + 1))
labelLabel = wx.StaticText(self.panel, label=_("Field &{} - Label: ").format(num + 1))
labelSizer.Add(labelLabel, wx.SizerFlags().Center().Border(wx.ALL, 5))
labelText = self.createTextCtrl(html_filter(field.name), (230, 30), True)
labelSizer.Add(labelText, wx.SizerFlags().Expand().Border(wx.ALL, 5))
@@ -134,40 +134,40 @@ class ShowUserProfile(wx.Dialog):
bullSwitch = {True: _('Yes'), False: _('No'), None: _('No')}
privateSizer = wx.BoxSizer(wx.HORIZONTAL)
privateLabel = wx.StaticText(self.panel, label=_("Private account: "))
privateLabel = wx.StaticText(self.panel, label=_("&Private account: "))
private = self.createTextCtrl(bullSwitch[user.locked], (30, 30))
privateSizer.Add(privateLabel, wx.SizerFlags().Center())
privateSizer.Add(private, wx.SizerFlags().Center())
mainSizer.Add(privateSizer, 0, wx.ALL | wx.CENTER)
botSizer = wx.BoxSizer(wx.HORIZONTAL)
botLabel = wx.StaticText(self.panel, label=_("Bot account: "))
botLabel = wx.StaticText(self.panel, label=_("&Bot account: "))
botText = self.createTextCtrl(bullSwitch[user.bot], (30, 30))
botSizer.Add(botLabel, wx.SizerFlags().Center())
botSizer.Add(botText, wx.SizerFlags().Center())
mainSizer.Add(botSizer, 0, wx.ALL | wx.CENTER)
discoverSizer = wx.BoxSizer(wx.HORIZONTAL)
discoverLabel = wx.StaticText(self.panel, label=_("Discoverable account: "))
discoverLabel = wx.StaticText(self.panel, label=_("&Discoverable account: "))
discoverText = self.createTextCtrl(bullSwitch[user.discoverable], (30, 30))
discoverSizer.Add(discoverLabel, wx.SizerFlags().Center())
discoverSizer.Add(discoverText, wx.SizerFlags().Center())
mainSizer.Add(discoverSizer, 0, wx.ALL | wx.CENTER)
posts = wx.Button(self.panel, label=_("{} posts. Click to open posts timeline").format(user.statuses_count))
posts = wx.Button(self.panel, label=_("{} p&osts. Click to open posts timeline").format(user.statuses_count))
# posts.SetToolTip(_("Click to open {}'s posts").format(user.display_name))
posts.Bind(wx.EVT_BUTTON, self.onPost)
mainSizer.Add(posts, wx.SizerFlags().Center())
following = wx.Button(self.panel, label=_("{} following. Click to open Following timeline").format(user.following_count))
following = wx.Button(self.panel, label=_("{} &following. Click to open Following timeline").format(user.following_count))
mainSizer.Add(following, wx.SizerFlags().Center())
following.Bind(wx.EVT_BUTTON, self.onFollowing)
followers = wx.Button(self.panel, label=_("{} followers. Click to open followers timeline").format(user.followers_count))
followers = wx.Button(self.panel, label=_("{} fo&llowers. Click to open followers timeline").format(user.followers_count))
mainSizer.Add(followers, wx.SizerFlags().Center())
followers.Bind(wx.EVT_BUTTON, self.onFollowers)
close = wx.Button(self.panel, wx.ID_CLOSE, _("Close"))
close = wx.Button(self.panel, wx.ID_CLOSE, _("&Close"))
self.SetEscapeId(close.GetId())
close.SetDefault()
wrapperSizer.Add(mainSizer, 0, wx.CENTER)
+4 -4
View File
@@ -1,7 +1,7 @@
{"current_version": "2024.05.19",
"description": "Initial support for GoToSocial instances, mute conversations, local and public timelines from remote instances, translate using LibreTranslate or DeepL and several bugfixes.",
{"current_version": "2024.05.23",
"description": "Read long posts in GUI, display posts with unicode characters and several buffixes.",
"date": "unknown",
"downloads":
{"Windows32": "https://github.com/MCV-Software/TWBlue/releases/download/v2024.05.19/TWBlue_portable_v2024.05.19.zip",
"Windows64": "https://github.com/MCV-Software/TWBlue/releases/download/v2024.05.19/TWBlue_portable_v2024.05.19.zip"}
{"Windows32": "https://github.com/MCV-Software/TWBlue/releases/download/v2024.05.23/TWBlue_portable_v2024.05.23.zip",
"Windows64": "https://github.com/MCV-Software/TWBlue/releases/download/v2024.05.23/TWBlue_portable_v2024.05.23.zip"}
}