Skip to main content

Weblate Fedora Messaging integration

Project description

Weblate

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.

Website Translation status CII Best Practices PyPI package Documentation

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

weblate_fedora_messaging-0.8.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

weblate_fedora_messaging-0.8-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file weblate_fedora_messaging-0.8.tar.gz.

File metadata

File hashes

Hashes for weblate_fedora_messaging-0.8.tar.gz
Algorithm Hash digest
SHA256 67eaff433b5372daba868b313bd55dce3ca69d1fb1cb8c00a57139f3d604bb88
MD5 d1734edf2f2cb1c43c61c0e01850c133
BLAKE2b-256 911ba4bb542f143da0fad0c12117320f4a6b5149d49758a8bb9affaf99f4e4fa

See more details on using hashes here.

File details

Details for the file weblate_fedora_messaging-0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for weblate_fedora_messaging-0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 3a050125772a45b01f0bca8f12ced244f8894749dc6746ceba573d06fe14669c
MD5 9e72ac6827cccf4d2e6556722a067069
BLAKE2b-256 5a3dab4d04160f4762c078fad3f8579f6db7d0b179db199e32a69c440779a837

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page