In addition to the standard search functionality of the site, there will often be content in which you wish to be able to search on a constant basis. An example of this would be 'Unread content' or 'Content I have started'. For this, we have Activity Streams. These provide you with the ability to set up lists of content based on a criteria that has been given, either by yourself, or user defined.
All Activity Stream
The 'All Activity' stream which is available in the activity menu by default, will give you a rundown of all activity on the site. Unlike other streams on the site, this will notify you of any new items since viewing the page. You can view this in either a condensed view (one line per item) or the default expanded view you see in the screenshot below.
User Defined Streams
Within the default menu structure, under the 'Activity' menu item, you will see a 'My Activity Streams' option. Here you will see any admin defined activity streams, and also the ability to create your own stream (on a per user basis).
When selecting to create new stream, you will be presented with the filters you wish to use for your new stream. Here I have created a new stream for a new housing mods uploaded to the site. Note you can select the cog icon at the side of any content type to select specific items under that content type. In this instance, a specific category.
Any new streams that are created, are then shown under the 'My Activity Streams' menu, beneath the default set of streams.
Editing Existing Streams
When viewing any existing streams, you will see a set of filters at the top of the page, in which you can change to your liking. Changing these will change the data shown in real time. Often there are times where you will wish to save a small change to an existing stream, rather than creating one from scratch. After making an edit to any of the filters, you will see a save button, which will then allow you to create a new stream from your changes.
Our site provides an extensive REST API to provide a way to consume and create data for third-party applications and websites.
Examples of things you could do includes automatically posting new mod releases from your GitHub via integration, authenticating TES3MP users against your Community members, and much more.
There are two ways to authenticate requests to our REST API: using an API key (all versions), or using OAuth (4.3 and above).
When using an API key, all data is available and all actions can be performed. For example, if you send an API request to GET /forums/topics, every topic in the community will be in the results; if you send an API request to POST /forums/topics you can create a topic as any user on the community. It is therefore very important that you always keep the API Keys secret, and only grant access to the endpoints you intend to use. We only use these for our internal tools, though most still use OAuth with appropriately roled and scoped accounts.
Unlike with API keys, when accessing the REST API with OAuth, you will be providing an access token which has been granted to a specific user* and only data that user can see, and actions that user can perform are available. For example, if you send an API request to GET /forums/topics, only topics in forums that the authenticated user can see will be in the results; if you send an API request to POST /forums/topics the topic will be created as the authenticated user and that cannot be changed.
Some endpoints are only available when using one method or the other. For example, GET /core/me gets information about the authenticated user and so can only be used when authenticated with OAuth. Meanwhile, POST /forums/forums creates a forum, which is exclusively a site-level operation and so can only be used when authenticated with an API Key (though we can also authenticate with Client Credentials which will work similarly to using an API Key, giving full access to the API rather than as a specific user) . Some endpoints, while available to both methods, might accept different request parameters or have different response parameters for different methods which will be explained in the documentation.
When an error is encountered, you will receive a response like this:
The possible error codes/messages for each endpoint are detailed within this documentation reference. In addition to the endpoint-specific errors, the following global errors may also be returned:
1S290/A or 1S290/C
The IP address that is sending the request has been banned from the community. This may happen automatically if the IP Address has repeatedly sent many requests with invalid API keys.
The IP address that is sending the request has sent multiple requests with an invalid API key and so is prevented from sending any more requests for several minutes.
No API key or OAuth access token was sent in the request.
The API key was valid, but is configured to only be valid for requests coming from certain IP addresses and IP address the request was sent from is not in the allowed list.
The API key was valid, but it is not configured to be used as URL authentication and must be used in AUTHORIZATION headers.
The API key sent in the request is not valid.
An X-IPS-Language header was sent in the request (which can be used to specify a language ID for the response), but its value was not valid.
The endpoint the request was sent to does not exist (the first level contains an invalid character, only alphanumerics are acceptable).
The endpoint the request was sent to does not exist (the second level contains an invalid character, only alphanumerics are acceptable).
The endpoint the request was sent to does not exist (the first level does not exist).
The application which controls the endpoint the request was sent to is currently disabled.
The endpoint the request was sent to does not exist (the second level does not exist).
The endpoint the request was sent to does not exist (the URL contains too many levels).
The API key does not have permission to access the requested endpoint.
The endpoint the request was sent to does not exist - the HTTP request method may be incorrect (for example, sending a GET rather than a POST).
The OAuth access token sent in the request is not valid.
The OAuth access token sent in the request was valid but has expired.
The OAuth access token has not been authorised to access any scopes.
GET / POST documentation for all application scopes will be posted in due course.
Communities are a way for us to support sub-communities within the Morrowind modding community. Many people have requested social group functionality in the past, and Communities is our implementation of this concept.
You can find the Communities section within the header bar. From this page, you may Start a Community, or Join a Community.
Joining a Community
Communities can be configured with different privacy settings, so not all communities are available for all to join. The different types include:
Everyone can see the community and its posts, and can participate without joining.
Everyone can see the community and its posts, but only members can participate. Everyone can join.
Everyone can see the community and who's in it, but only members can see posts and participate. Users need to ask a leader to join.
Only members can find the community and see its posts. Users need to be invited by a leader to join.
As such, you may only select Join a Community on both Public and Open types. If you are invited to a Closed or Private community, you'll receive a notification.
Starting a Community
From the Communities page, you may select Start a Community. You will then be provided to give it a name, select the privacy type, optionally provide a description and a community icon, and indicate whom can see this community's members.
You may also configure Community Rules, with the option to Force Acknowledge by would-be members.
After you submit this form, your community will be sent for approval to site staff. After approval, you may start to invite users who will be able to track postings in the Community activity feed.
Communities can be ran as simple groups, but what makes them particularly special is the ability to create your own sub-forums, files, and pages. This can be done by selecting the Manage Community option.
You may add multiple entries for files, topics, and pages, such as if you wish to have a board for general talk threads and a separate board catering for another topic.
As the creator of the community, you will be the leader. However, you may appoint moderators to your community who can perform actions such as pinning and moving topics.
This can be done from the Members section of your community. You may also remove people from your community in the same way.