View Source API Reference Mobilizon v5.0.0-beta.1

Modules

Mobilizon is a decentralized and federated Meetup-like using ActivityPub.

The Activities context.

Any activity for users

The Actors context.

Represents an actor (local and remote).

Represents a local bot.

Represents the following of an actor to another actor.

Represents the membership of an actor to a group.

Represents metadata on a membership

The Addresses context.

Represents an address for an event or a group.

The Admin context.

Represents an action log entity.

A Key-Value settings table for basic settings

A Key-Value settings table for media settings

The Applications context.

Module representing an application

Module representing a application device activation

Module representing an application token

This module defines test helpers for creating entities via the Mobilizon.Applications context.

CLI wrapper for releases

Provides the core functions to retrieve and manage the CLDR data that supports formatting and localisation.

Parses HTTP Accept-Language header values as defined in rfc2616.

Data functions to retrieve localised calendar information.

Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format.

Manages the Date, TIme and DateTime formats defined by CLDR.

Implements the compilation and execution of date, time and datetime formats.

Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format.

Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format.

Backend module that provides functions to define new locales and display human-readable locale names for presentation purposes.

Formats numbers and currencies based upon CLDR's decimal formats specification.

Implements cardinal plural rules for numbers.

Functions to manage the collection of number patterns defined in Cldr.

Implements ordinal plural rules for numbers.

Implements plural rules for ranges

Transliteration for digits and separators.

Functions to implement the number system rule-based-number-format rules of CLDR.

Functions to implement the ordinal rule-based-number-format rules of CLDR.

Functions to implement the spellout rule-based-number-format rules of CLDR.

Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format.

Configuration wrapper.

Module to provide configuration from a custom file

The conversations context

Represents a conversation

Represents a conversation participant

Represents a conversation view for GraphQL API

Utility module which contains cryptography related functions.

This module defines the setup for tests requiring access to the application's data layer.

The discussions context

Represents an actor comment (for instance on an event or on a group).

Represents a discussion

Module to generate the slug for discussions

This module represent the auto-generated Ecto.Type for slug-field.

The Events context.

Module that handles event categories

Represents an event.

Participation stats on event

Represents an event offer.

Represents an event options.

Participation stats on event

Represents an event participation condition.

Represents a token for a feed of events.

Represents a participant, an actor participating to an event.

Participation stats on event

Represents a session for an event (such as a talk at a conference).

Represents a tag for events.

Generates slugs for tags.

This module represent the auto-generated Ecto.Type for slug-field.

Represents a tag relation.

Represents a track for an event (such as a theme) having multiple sessions.

Utils related to events

Manage exported files

Factory for fixtures with ExMachina.

The ActivityPub context.

Module to handle ActivityPub Actor interactions

Tools for calculating content audience

Handle federated activities

Module to handle direct URL ActivityPub fetches to remote content

Module to check group members permissions on objects

Module to ensure entities are correctly preloaded

Handle publishing activities

Module that provides functions to explore and fetch collections on a group

Handles following and unfollowing relays and instances.

A module to handle coding from internal to wire ActivityPub and back.

ActivityPub entity behaviour

ActivityPub entity Managable protocol.

ActivityPub type handler for Todos

Various ActivityPub related utils.

Utility functions related to content visibility

The ActivityStream Type

Module to convert and validate event metadata

Adapter for the HTTPSignatures lib that handles signing and providing public keys to verify HTTPSignatures

Performs NodeInfo requests

Performs the WebFinger requests and responses (JSON only).

Extremely basic XML encoder. Builds XRD for WebFinger host_meta.

Provide recent elements from groups that profiles follow

API for discussions and comments.

Common API for following, unfollowing, accepting and rejecting stuff.

Common API to join events and groups.

Absinthe helpers for tests

Check authorizations

Module referencing all scopes usable in the Mobilizon API

Module to handle errors in GraphQL

An Absinthe middleware to add to logging providers the GraphQL Operation name as context

Handles the activity-related GraphQL calls.

Handles the group-related GraphQL calls.

Handles the comment-related GraphQL calls

Handles the report-related GraphQL calls.

Handles the Application-related GraphQL calls.

Handles the comment-related GraphQL calls.

Handles the config-related GraphQL calls.

Handles the group-related GraphQL calls.

Handles the group-related GraphQL calls.

Handles the event-related GraphQL calls.

Tools to test permission on events

Handles the feed tokens-related GraphQL calls.

Handles the followers-related GraphQL calls.

Handles the group-related GraphQL calls.

Handles the media-related GraphQL calls

Handles the member-related GraphQL calls

Handles the participation-related GraphQL calls.

Handles the person-related GraphQL calls

Handles the posts-related GraphQL calls

Handles the push subscriptions-related GraphQL calls.

Handles the report-related GraphQL calls.

Handles the resources-related GraphQL calls

Handles the event-related GraphQL calls

Handles the statistics-related GraphQL calls.

Handles the tag-related GraphQL calls

Handles the todos related GraphQL calls

Handles the user-related GraphQL calls.

Handles the user activity settings-related GraphQL calls.

GraphQL schema representation.

Schema representation for Activity

Schema representation for Actor

Schema representation for Group.

Schema representation for Follower

Schema representation for Group.

Schema representation for Member

Schema representation for Person

Schema representation for Address

Schema representation for ActionLog.

Schema representation for an auth application

Schema representation for User

Schema representation for conversation

Register extra enum types dynamically

The geom scalar type allows Geo.PostGIS.Geometry strings to be passed in and out. Requires {:geo, "~> 3.0"}, package: https://github.com/elixir-ecto/ecto

The timezone scalar type allows timezone ID strings to be passed in and out.

The UUID4 scalar type allows UUID compliant strings to be passed in and out. Requires { :ecto, ">= 0.0.0" } package: https://github.com/elixir-ecto/ecto

Schema representation for Comment

Schema representation for discussion

Schema representation for Event.

Schema representation for Participant.

Schema representation for Participant.

Schema representation for a follow activity

Schema representation for Medias

Schema representation for Posts

Schema representation for User

Schema representation for Resources

Schema representation for Search

Allows sorting a collection of elements

Schema representation for Statistics

Schema representation for Tags

Schema representation for Todo Lists

Schema representation for Todos

Schema representation for User

Schema representation for PushSubscription

Schema representation for PushSubscription

The instances context

An instance representation

The Media context.

Represents a file entity.

Represents a media entity.

Represents a media metadata

The Mentions context.

The Posts context.

Module that represent Posts published by groups

Module to generate the slug for posts

This module represent the auto-generated Ecto.Type for slug-field.

Port to use Python modules from Elixir

Genserver to handle an instance of Python handling the calls to Mobilizon.PythonPort.

The Reports context.

Represents a note entity.

Represents a report entity.

The Resources context.

Represents a web resource

Represents a resource metadata

Behavior for Activity creators

Insert a comment activity

Insert a conversation activity

Insert a discussion activity

Insert an event activity

Insert a group setting activity

Insert a member activity

Insert an event activity

Insert an post activity

Behavior for Activity renderers

Render a conversation activity

Insert a comment activity

Insert a comment activity

Insert a comment activity

Insert an resource activity

Utils for activities

Handle actor suspensions

Module to render an Mobilizon.Addresses.Address struct to a string

Module to load the service adapter defined inside the configuration.

Mock for Anti-spam Provider implementations.

Provider Behaviour for anti-spam detection.

Module to handle applications management

Module to handle authentification (currently through database or LDAP)

Authenticate Mobilizon users through LDAP accounts

Authenticate Mobilizon users through database accounts

Service to clean old activities

Service to clean orphan media

Service to clean unconfirmed users

Provide some helpers to configuration files

Module to represent a datetime in a given locale

Render an error page

Module to load and configure error reporting adapters

Sentry adapter for error reporting

Behavior that export modules that use caching should implement

Common tools for exportation

Serve Atom Syndication Feeds.

Export an event to iCalendar format.

Export a list of participants to CSV

Common functions for managing participants export

Export a list of participants to ODS

Export a list of participants to PDF

Formats input text to structured data, extracts mentions and hashtags.

Custom strategy to filter HTML content.

Service to filter tags out of HTML content.

Custom strategy to filter HTML content in OEmbed html

Helps to format text blocks

Behaviour for any analytics service

Matomo analytics provider

Plausible analytics provider

Sentry analytics provider

Module to load the service adapter defined inside the configuration.

Google Maps Geocoding service. Only works with addresses.

Mock for Geospatial Provider implementations.

Provider Behaviour for Geospatial stuff.

Module to load the service adapter defined inside the configuration.

The structure holding search result information about an event

The structure holding search result information about a group

Provider Behaviour for Global Search.

Various guards

Tesla HTTP Client that is preconfigured to get and post ActivityPub content

Tesla HTTP Client that is preconfigured to get JSON content

Tesla HTTP Basic Client with JSON middleware

Tesla HTTP Basic Client with XML middleware

Tesla HTTP Basic Client that fetches HTML to extract metadata preview

Tesla HTTP Basic Client that fetches HTML to extract metadata preview

Utils for HTTP operations

Tesla HTTP Basic Client with JSON middleware

Detect the language of the event

Service that allows producing metadata HTML tags about content

Generates metadata for every other page that isn't event/actor/comment

Tools to convert tags to string.

Behaviour for notifiers

Module to filter activities to notify according to user's activity settings

Module to load the service adapter defined inside the configuration.

The structure holding information about a picture

Provider Behaviour for pictures stuff.

Module to fetch favicon information from a website

Module to parse data in HTML pages

Module to parse fallback data in HTML pages (plain old title and meta description)

Module to parse meta tags data in HTML pages

Module to parse OEmbed data in HTML pages

Module to parse OpenGraph data in HTML pages

Module to parse Twitter tags data in HTML pages

Generates a sitemap

A module that provides cached statistics

Detect the timezone from a point

Given an application and a key, execute the plug if the configured value matches the expected value. Usage

Worker to insert activity items in users feeds

Worker to perform various actions in the background

Worker to build search results

Worker to build sitemap

Worker to send activity recaps

Worker to clean suspended actors

Worker to send notifications about an event changes a while after they're performed

Tools to ease dealing with workers

Worker to push legacy notifications

Worker to send notifications

Worker to build sitemap

Worker to refresh the instances materialized view and the relay actors

Worker to refresh the participant event stats based on participants data

Worker to send activity recaps

Holds the list of shares made to external actors

Helper module for custom PostgreSQL functions

Mobilizon Ecto utils

Module for pagination of queries.

SQL code for PostgreSQL instances materialized view

Helpers for use in tests.

Assertions for emails.

The Todos context.

Represents a todo, or task

Represents a todo list, or task list

Represent tombstones for deleted objects. Saves only URI

The Users context.

Module to manage users settings

Guards for users

Represents informations about a push subscription for a specific user

Module to manage users settings

Represents user location information

Represents a local user.

The entrypoint for defining your web interface, such as controllers, views, channels and so on.

View for our the API terms

Guardian context for Mobilizon.Web

In case we have an auth error

Handles the JWT tokens encoding and decoding

Handles the app sessions

View for the auth routes

Facade module which provides access to all cached data.

ActivityPub related cache.

This module defines the test case to be used by channel tests.

This module defines the test case to be used by tests that require setting up a connection.

The Email context.

Handles emails sent about activity notifications.

Handles emails sent about actors status.

Handles emails sent to admins.

Provides a function to test emails against a "not so bad" regex.

Handles emails sent about events.

Handles emails sent about (instance) follow.

Handles emails sent about group changes.

Mobilizon Mailer.

Handles emails sent about group members.

Handles emails sent about event notifications.

Handles emails sent about participation.

Handles emails sent to users.

Endpoint for Mobilizon app

Conveniences for translating and building error messages.

View for errors

Controller to serve exported files

Translates controller action results into valid Plug.Conn responses.

Controller to serve RSS, ATOM and iCal Feeds

A module providing Internationalization with a gettext-based API.

Module to proxify remote media

Controller to load our webapp

View for our webapp

Runtime configuration for plugs

Plug to set locale for Gettext

Restrict ActivityPub routes when not federating

A plug to setup some HTTP security-related headers, like CSP

Plug to check HTTP Signatures on every incoming request

Get actor identity from Signature when handing fetches

Plug to set locale for Gettext

Serves uploaded media files

Module to put some context into the request

A reverse proxy.

Router for mobilizon app

Manage user uploads

Upload Filter behaviour

Extracts metadata about the upload, such as width/height

Replaces the original filename with a pre-defined text or randomly generated string.

Computes blurhash from the upload

Names the file after its hash to avoid dedupes

Strips GPS related EXIF tags and overwrites the file in place. Also strips or replaces filesystem metadata e.g., timestamps.

Handle mogrify transformations

Handle media optimizations

Resize the pictures if they're bigger than maximum size.

Returns the mime-type of a binary and optionally a normalized file-name.

Defines the contract to put and get an uploaded file to any backend.

Local uploader for files

Utils for views

Handles Webfinger requests

Mix Tasks

Tasks to manage actors

Task to delete an actor

Task to create a new user

Task to display an actor details

Task to display an actor details

Tools for generating usernames from display names

Common functions to be reused in mix tasks

Creates a bot from a source.

Provides tools for Ecto-related tasks (such as migrations)

Changes Logger level to :info before start migration. Changes level back when migration ends.

Changes Logger level to :info before start rollback. Changes level back when rollback ends.

Tasks to manage groups

Task to refresh an actor details

Generates a new config

Tasks to maintain mobilizon

Task to scan all profiles and events against spam detector and report them

Task to send an email to check if the configuration is running properly

Tasks to manage media

Task to accept an instance follow request

Manages remote relays

Task to accept an instance follow request

Task to follow an instance

Task to refresh an instance details

Task to unfollow an instance

Task to generate a new Sitemap

Changes Logger level to :info before downloading. Changes level back when downloads ends.

Tasks to manage users

Clean unconfirmed users

Task to delete a user

Task to modify an existing Mobilizon user

Task to create a new user

Task to display an user details

Task to generate WebPush configuration