Weblate Fedora Messaging integration
Project description
Weblate is libre software web-based continuous localization system, used by over 2500 libre projects and companies in more than 165 countries.
Fedora messaging integration and AMQP publisher for Weblate.
Installation
Install from PyPI:
pip install weblate-fedora-messaging
Sources are available at <https://github.com/WeblateOrg/fedora_messaging>.
Configure Weblate integration:
# Add to installed apps
INSTALLED_APPS.append("weblate_fedora_messaging")
# Path to configuration file
FEDORA_MESSAGING_CONF = "/etc/fedora-messaging/config.toml"
# fedora_messaging_task retry settings (optional, the following are the default values)
FEDORA_MESSAGING_TASK_RETRY_BACKOFF = 600
FEDORA_MESSAGING_TASK_RETRY_BACKOFF_MAX = 3600
FEDORA_MESSAGING_TASK_RETRY_JITTER = True
FEDORA_MESSAGING_TASK_MAX_RETRIES = 3
# Route messaging to notify queue
CELERY_TASK_ROUTES["weblate_fedora_messaging.tasks.*"] = {"queue": "notify"}
Messages content
Topic
All messages have topic weblate.<action>.<project>.<component>.<translation>. The action is lowercase textual representation of action with underscores instead of space, for example resource_update, all other parts are optional and represent slug of the object or a language code.
Body
The body consists of following fields (given that they are available for the event):
- id
Numerical ID of change
- action
Verbose name of the change, see Change actions source code for possible values
- timestamp
ISO formatted timestamp
- target
New value of the change (eg. new translation of the string)
- old
Old value of the change (eg. previous translation of the string)
- source
Source string.
- url
Absolute URL to view the related object.
- author
Author username (this can be different from user for example when accepting suggestions)
- user
Acting username
- project
Project slug
- component
Component slug
- translation
Translation language code
Headers
There are additional headers which you might utilize for routing as well:
- action
Verbose name of the change, see Change actions source code for possible values
- project
Project slug
- component
Component slug
Example messages
Repository merge event:
{
"id": 1,
"action": "Merged repository",
"timestamp": "2017-06-15T11:30:47.325000+00:00",
"url": "http://example.com/projects/test/test/",
"component": "test"
}
New source string event:
{
"id": 2,
"action": "New source string",
"timestamp": "2017-06-15T11:30:47.372000+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Resource update event:
{
"id": 6,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.410000+00:00",
"url": "http://example.com/projects/test/test/cs/",
"project": "test",
"component": "test",
"translation": "cs"
}
{
"id": 7,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.510000+00:00",
"url": "http://example.com/projects/test/test/de/",
"project": "test",
"component": "test",
"translation": "de"
}
{
"id": 8,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.595000+00:00",
"url": "http://example.com/projects/test/test/it/",
"project": "test",
"component": "test",
"translation": "it"
}
Project removal event:
{
"id": 9,
"action": "Removed project",
"timestamp": "2019-10-17T15:57:08.559420+00:00",
"target": "test",
"user": "testuser"
}
New contributor event:
{
"id": 11,
"action": "New contributor",
"timestamp": "2019-10-17T15:57:08.759960+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"author": "testuser",
"user": "testuser",
"project": "test",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
New translation event:
{
"id": 12,
"action": "New translation",
"timestamp": "2019-10-17T15:57:08.772591+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"target": ["Ahoj svete!\n"],
"author": "testuser",
"user": "testuser",
"project": "test",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Contributing
Contributions are welcome! See documentation for more information.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for weblate_fedora_messaging-0.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07ffa27160650b6c3f9b1ae2c8a9f0d7d950238e2813800f48418d84f5cb8910 |
|
MD5 | 10b79b558ca860336978e6e99262ff27 |
|
BLAKE2b-256 | 955aac7b4d195f55c046ede4109d049d17fb87b40a50d74f81eefc8f9ba60d93 |
Hashes for weblate_fedora_messaging-0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fda4f478a9cff1cd3d1d3e2c2afb29fe8484bd561f8d817b5e15b3a99c3a46fa |
|
MD5 | 9d76f5f74dceb717b234bbbdf4c596d4 |
|
BLAKE2b-256 | f2cc9bd7ccf7341a94457c74b2504e64eeca555cdc0fc5b8037204cb74cf3c03 |