diff --git a/CHANGELOG.md b/CHANGELOG.md
index e6180a6da..75357f05e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,22 +12,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### Removed
-- **Breaking:** Removed `Pleroma.Workers.Cron.StatsWorker` setting from Oban `:crontab`.
+- **Breaking:** `Pleroma.Workers.Cron.StatsWorker` setting from Oban `:crontab` (moved to a simpler implementation).
+- **Breaking:** `Pleroma.Workers.Cron.ClearOauthTokenWorker` setting from Oban `:crontab` (moved to scheduled jobs).
+- **Breaking:** `Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker` setting from Oban `:crontab` (moved to scheduled jobs).
-## unreleased-patch - ???
+### Changed
+- Minimum lifetime for ephmeral activities changed to 10 minutes and made configurable (`:min_lifetime` option).
+
+## [2.1.1] - 2020-09-08
+
+### Security
+- Fix possible DoS in Mastodon API user search due to an error in match clauses, leading to an infinite recursion and subsequent OOM with certain inputs.
+- Fix metadata leak for accounts and statuses on private instances.
+- Fix possible DoS in Admin API search using an atom leak vulnerability. Authentication with admin rights was required to exploit.
+
+### Changed
+
+- **Breaking:** The metadata providers RelMe and Feed are no longer configurable. RelMe should always be activated and Feed only provides a header tag for the actual RSS/Atom feed when the instance is public.
+- Improved error message when cmake is not available at build stage.
### Added
-
-- Rich media failure tracking (along with `:failure_backoff` option)
+- Rich media failure tracking (along with `:failure_backoff` option).
### Fixed
-
-- Possible OOM errors with the default HTTP adapter
+- Default HTTP adapter not respecting pool setting, leading to possible OOM.
+- Fixed uploading webp images when the Exiftool Upload Filter is enabled by skipping them
- Mastodon API: Search parameter `following` now correctly returns the followings rather than the followers
- Mastodon API: Timelines hanging for (`number of posts with links * rich media timeout`) in the worst case.
Reduced to just rich media timeout.
-- Mastodon API: Cards being wrong for preview statuses due to cache key collision
-- Password resets no longer processed for deactivated accounts
+- Mastodon API: Cards being wrong for preview statuses due to cache key collision.
+- Password resets no longer processed for deactivated accounts.
+- Favicon scraper raising exceptions on URLs longer than 255 characters.
## [2.1.0] - 2020-08-28
diff --git a/SECURITY.md b/SECURITY.md
index c212a2505..8617c1434 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -6,7 +6,7 @@ Currently, Pleroma offers bugfixes and security patches only for the latest mino
| Version | Support
|---------| --------
-| 2.0 | Bugfixes and security patches
+| 2.1 | Bugfixes and security patches
## Reporting a vulnerability
diff --git a/config/config.exs b/config/config.exs
index 84a02bc2e..c975da739 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -454,9 +454,7 @@
config :pleroma, Pleroma.Web.Metadata,
providers: [
Pleroma.Web.Metadata.Providers.OpenGraph,
- Pleroma.Web.Metadata.Providers.TwitterCard,
- Pleroma.Web.Metadata.Providers.RelMe,
- Pleroma.Web.Metadata.Providers.Feed
+ Pleroma.Web.Metadata.Providers.TwitterCard
],
unfurl_nsfw: false
@@ -532,6 +530,7 @@
log: false,
queues: [
activity_expiration: 10,
+ token_expiration: 5,
federator_incoming: 50,
federator_outgoing: 50,
web_push: 50,
@@ -546,8 +545,6 @@
],
plugins: [Oban.Plugins.Pruner],
crontab: [
- {"0 0 * * *", Pleroma.Workers.Cron.ClearOauthTokenWorker},
- {"* * * * *", Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker},
{"0 0 * * 0", Pleroma.Workers.Cron.DigestEmailsWorker},
{"0 0 * * *", Pleroma.Workers.Cron.NewUsersDigestWorker}
]
@@ -658,7 +655,7 @@
account_confirmation_resend: {8_640_000, 5},
ap_routes: {60_000, 15}
-config :pleroma, Pleroma.ActivityExpiration, enabled: true
+config :pleroma, Pleroma.Workers.PurgeExpiredActivity, enabled: true, min_lifetime: 600
config :pleroma, Pleroma.Plugs.RemoteIp, enabled: true
diff --git a/config/description.exs b/config/description.exs
index eac97ad64..82c7bc6a7 100644
--- a/config/description.exs
+++ b/config/description.exs
@@ -2290,8 +2290,6 @@
type: {:list, :tuple},
description: "Settings for cron background jobs",
suggestions: [
- {"0 0 * * *", Pleroma.Workers.Cron.ClearOauthTokenWorker},
- {"* * * * *", Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker},
{"0 0 * * 0", Pleroma.Workers.Cron.DigestEmailsWorker},
{"0 0 * * *", Pleroma.Workers.Cron.NewUsersDigestWorker}
]
@@ -2474,14 +2472,20 @@
},
%{
group: :pleroma,
- key: Pleroma.ActivityExpiration,
+ key: Pleroma.Workers.PurgeExpiredActivity,
type: :group,
- description: "Expired activity settings",
+ description: "Expired activities settings",
children: [
%{
key: :enabled,
type: :boolean,
- description: "Whether expired activities will be sent to the job queue to be deleted"
+ description: "Enables expired activities addition & deletion"
+ },
+ %{
+ key: :min_lifetime,
+ type: :integer,
+ description: "Minimum lifetime for ephemeral activity (in seconds)",
+ suggestions: [600]
}
]
},
diff --git a/config/test.exs b/config/test.exs
index e9c2273e8..0ee6f1b7f 100644
--- a/config/test.exs
+++ b/config/test.exs
@@ -114,8 +114,6 @@
config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: true
-config :pleroma, :instances_favicons, enabled: false
-
config :pleroma, Pleroma.Uploaders.S3,
bucket: nil,
streaming_enabled: true,
diff --git a/docs/configuration/cheatsheet.md b/docs/configuration/cheatsheet.md
index 7f0725b48..0c5d17ce3 100644
--- a/docs/configuration/cheatsheet.md
+++ b/docs/configuration/cheatsheet.md
@@ -18,7 +18,7 @@ To add configuration to your config file, you can copy it from the base config.
* `notify_email`: Email used for notifications.
* `description`: The instance’s description, can be seen in nodeinfo and ``/api/v1/instance``.
* `limit`: Posts character limit (CW/Subject included in the counter).
-* `discription_limit`: The character limit for image descriptions.
+* `description_limit`: The character limit for image descriptions.
* `chat_limit`: Character limit of the instance chat messages.
* `remote_limit`: Hard character limit beyond which remote posts will be dropped.
* `upload_limit`: File size limit of uploads (except for avatar, background, banner).
@@ -115,6 +115,7 @@ To add configuration to your config file, you can copy it from the base config.
* `Pleroma.Web.ActivityPub.MRF.VocabularyPolicy`: Restricts activities to a configured set of vocabulary. (See [`:mrf_vocabulary`](#mrf_vocabulary)).
* `Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy`: Rejects or delists posts based on their age when received. (See [`:mrf_object_age`](#mrf_object_age)).
* `Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy`: Sets a default expiration on all posts made by users of the local instance. Requires `Pleroma.ActivityExpiration` to be enabled for processing the scheduled delections.
+ * `Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicy`: Makes all bot posts to disappear from public timelines.
* `transparency`: Make the content of your Message Rewrite Facility settings public (via nodeinfo).
* `transparency_exclusions`: Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value.
@@ -352,8 +353,6 @@ config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Http,
* `providers`: a list of metadata providers to enable. Providers available:
* `Pleroma.Web.Metadata.Providers.OpenGraph`
* `Pleroma.Web.Metadata.Providers.TwitterCard`
- * `Pleroma.Web.Metadata.Providers.RelMe` - add links from user bio with rel=me into the `` as ``.
- * `Pleroma.Web.Metadata.Providers.Feed` - add a link to a user's Atom feed into the `` as ``.
* `unfurl_nsfw`: If set to `true` nsfw attachments will be shown in previews.
### :rich_media (consumer)
@@ -692,9 +691,8 @@ Pleroma has the following queues:
Pleroma has these periodic job workers:
-`Pleroma.Workers.Cron.ClearOauthTokenWorker` - a job worker to cleanup expired oauth tokens.
-
-Example:
+* `Pleroma.Workers.Cron.DigestEmailsWorker` - digest emails for users with new mentions and follows
+* `Pleroma.Workers.Cron.NewUsersDigestWorker` - digest emails for admins with new registrations
```elixir
config :pleroma, Oban,
@@ -706,7 +704,8 @@ config :pleroma, Oban,
federator_outgoing: 50
],
crontab: [
- {"0 0 * * *", Pleroma.Workers.Cron.ClearOauthTokenWorker}
+ {"0 0 * * 0", Pleroma.Workers.Cron.DigestEmailsWorker},
+ {"0 0 * * *", Pleroma.Workers.Cron.NewUsersDigestWorker}
]
```
@@ -973,7 +972,7 @@ Configure OAuth 2 provider capabilities:
* `token_expires_in` - The lifetime in seconds of the access token.
* `issue_new_refresh_token` - Keeps old refresh token or generate new refresh token when to obtain an access token.
-* `clean_expired_tokens` - Enable a background job to clean expired oauth tokens. Defaults to `false`. Interval settings sets in configuration periodic jobs [`Oban.Cron`](#obancron)
+* `clean_expired_tokens` - Enable a background job to clean expired oauth tokens. Defaults to `false`.
## Link parsing
@@ -1092,3 +1091,10 @@ config :pleroma, :frontends,
```
This would serve the frontend from the the folder at `$instance_static/frontends/pleroma/stable`. You have to copy the frontend into this folder yourself. You can choose the name and ref any way you like, but they will be used by mix tasks to automate installation in the future, the name referring to the project and the ref referring to a commit.
+
+## Ephemeral activities (Pleroma.Workers.PurgeExpiredActivity)
+
+Settings to enable and configure expiration for ephemeral activities
+
+* `:enabled` - enables ephemeral activities creation
+* `:min_lifetime` - minimum lifetime for ephemeral activities (in seconds). Default: 10 minutes.
diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex
index 7d8f00b08..7f1108dcf 100644
--- a/lib/mix/tasks/pleroma/database.ex
+++ b/lib/mix/tasks/pleroma/database.ex
@@ -133,8 +133,7 @@ def run(["ensure_expiration"]) do
days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365)
Pleroma.Activity
- |> join(:left, [a], u in assoc(a, :expiration))
- |> join(:inner, [a, _u], o in Object,
+ |> join(:inner, [a], o in Object,
on:
fragment(
"(?->>'id') = COALESCE((?)->'object'->> 'id', (?)->>'object')",
@@ -144,14 +143,20 @@ def run(["ensure_expiration"]) do
)
)
|> where(local: true)
- |> where([a, u], is_nil(u))
|> where([a], fragment("(? ->> 'type'::text) = 'Create'", a.data))
- |> where([_a, _u, o], fragment("?->>'type' = 'Note'", o.data))
+ |> where([_a, o], fragment("?->>'type' = 'Note'", o.data))
|> Pleroma.RepoStreamer.chunk_stream(100)
|> Stream.each(fn activities ->
Enum.each(activities, fn activity ->
- expires_at = Timex.shift(activity.inserted_at, days: days)
- Pleroma.ActivityExpiration.create(activity, expires_at, false)
+ expires_at =
+ activity.inserted_at
+ |> DateTime.from_naive!("Etc/UTC")
+ |> Timex.shift(days: days)
+
+ Pleroma.Workers.PurgeExpiredActivity.enqueue(%{
+ activity_id: activity.id,
+ expires_at: expires_at
+ })
end)
end)
|> Stream.run()
diff --git a/lib/mix/tasks/pleroma/emoji.ex b/lib/mix/tasks/pleroma/emoji.ex
index 8f52ee98d..1750373f9 100644
--- a/lib/mix/tasks/pleroma/emoji.ex
+++ b/lib/mix/tasks/pleroma/emoji.ex
@@ -183,7 +183,7 @@ def run(["gen-pack" | args]) do
IO.puts("Downloading the pack and generating SHA256")
- binary_archive = Tesla.get!(client(), src).body
+ {:ok, %{body: binary_archive}} = Pleroma.HTTP.get(src)
archive_sha = :crypto.hash(:sha256, binary_archive) |> Base.encode16()
IO.puts("SHA256 is #{archive_sha}")
@@ -252,7 +252,7 @@ defp fetch_and_decode!(from) do
end
defp fetch("http" <> _ = from) do
- with {:ok, %{body: body}} <- Tesla.get(client(), from) do
+ with {:ok, %{body: body}} <- Pleroma.HTTP.get(from) do
{:ok, body}
end
end
@@ -271,13 +271,5 @@ defp parse_global_opts(args) do
)
end
- defp client do
- middleware = [
- {Tesla.Middleware.FollowRedirects, [max_redirects: 3]}
- ]
-
- Tesla.client(middleware)
- end
-
defp default_manifest, do: Pleroma.Config.get!([:emoji, :default_manifest])
end
diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex
index 97feebeaa..17af04257 100644
--- a/lib/pleroma/activity.ex
+++ b/lib/pleroma/activity.ex
@@ -7,7 +7,6 @@ defmodule Pleroma.Activity do
alias Pleroma.Activity
alias Pleroma.Activity.Queries
- alias Pleroma.ActivityExpiration
alias Pleroma.Bookmark
alias Pleroma.Notification
alias Pleroma.Object
@@ -60,8 +59,6 @@ defmodule Pleroma.Activity do
# typical case.
has_one(:object, Object, on_delete: :nothing, foreign_key: :id)
- has_one(:expiration, ActivityExpiration, on_delete: :delete_all)
-
timestamps()
end
@@ -304,14 +301,14 @@ def all_by_actor_and_id(actor, status_ids) do
|> Repo.all()
end
- def follow_requests_for_actor(%Pleroma.User{ap_id: ap_id}) do
+ def follow_requests_for_actor(%User{ap_id: ap_id}) do
ap_id
|> Queries.by_object_id()
|> Queries.by_type("Follow")
|> where([a], fragment("? ->> 'state' = 'pending'", a.data))
end
- def following_requests_for_actor(%Pleroma.User{ap_id: ap_id}) do
+ def following_requests_for_actor(%User{ap_id: ap_id}) do
Queries.by_type("Follow")
|> where([a], fragment("?->>'state' = 'pending'", a.data))
|> where([a], a.actor == ^ap_id)
diff --git a/lib/pleroma/activity_expiration.ex b/lib/pleroma/activity_expiration.ex
deleted file mode 100644
index 955f0578e..000000000
--- a/lib/pleroma/activity_expiration.ex
+++ /dev/null
@@ -1,74 +0,0 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
-# SPDX-License-Identifier: AGPL-3.0-only
-
-defmodule Pleroma.ActivityExpiration do
- use Ecto.Schema
-
- alias Pleroma.Activity
- alias Pleroma.ActivityExpiration
- alias Pleroma.Repo
-
- import Ecto.Changeset
- import Ecto.Query
-
- @type t :: %__MODULE__{}
- @min_activity_lifetime :timer.hours(1)
-
- schema "activity_expirations" do
- belongs_to(:activity, Activity, type: FlakeId.Ecto.CompatType)
- field(:scheduled_at, :naive_datetime)
- end
-
- def changeset(%ActivityExpiration{} = expiration, attrs, validate_scheduled_at) do
- expiration
- |> cast(attrs, [:scheduled_at])
- |> validate_required([:scheduled_at])
- |> validate_scheduled_at(validate_scheduled_at)
- end
-
- def get_by_activity_id(activity_id) do
- ActivityExpiration
- |> where([exp], exp.activity_id == ^activity_id)
- |> Repo.one()
- end
-
- def create(%Activity{} = activity, scheduled_at, validate_scheduled_at \\ true) do
- %ActivityExpiration{activity_id: activity.id}
- |> changeset(%{scheduled_at: scheduled_at}, validate_scheduled_at)
- |> Repo.insert()
- end
-
- def due_expirations(offset \\ 0) do
- naive_datetime =
- NaiveDateTime.utc_now()
- |> NaiveDateTime.add(offset, :millisecond)
-
- ActivityExpiration
- |> where([exp], exp.scheduled_at < ^naive_datetime)
- |> limit(50)
- |> preload(:activity)
- |> Repo.all()
- |> Enum.reject(fn %{activity: activity} ->
- Activity.pinned_by_actor?(activity)
- end)
- end
-
- def validate_scheduled_at(changeset, false), do: changeset
-
- def validate_scheduled_at(changeset, true) do
- validate_change(changeset, :scheduled_at, fn _, scheduled_at ->
- if not expires_late_enough?(scheduled_at) do
- [scheduled_at: "an ephemeral activity must live for at least one hour"]
- else
- []
- end
- end)
- end
-
- def expires_late_enough?(scheduled_at) do
- now = NaiveDateTime.utc_now()
- diff = NaiveDateTime.diff(scheduled_at, now, :millisecond)
- diff > @min_activity_lifetime
- end
-end
diff --git a/lib/pleroma/config/deprecation_warnings.ex b/lib/pleroma/config/deprecation_warnings.ex
index 2bfe4ddba..412d55a77 100644
--- a/lib/pleroma/config/deprecation_warnings.ex
+++ b/lib/pleroma/config/deprecation_warnings.ex
@@ -8,7 +8,7 @@ defmodule Pleroma.Config.DeprecationWarnings do
require Logger
alias Pleroma.Config
- @type config_namespace() :: [atom()]
+ @type config_namespace() :: atom() | [atom()]
@type config_map() :: {config_namespace(), config_namespace(), String.t()}
@mrf_config_map [
@@ -57,6 +57,7 @@ def warn do
check_media_proxy_whitelist_config()
check_welcome_message_config()
check_gun_pool_options()
+ check_activity_expiration_config()
end
def check_welcome_message_config do
@@ -158,4 +159,20 @@ def check_gun_pool_options do
Config.put(:pools, updated_config)
end
end
+
+ @spec check_activity_expiration_config() :: :ok | nil
+ def check_activity_expiration_config do
+ warning_preface = """
+ !!!DEPRECATION WARNING!!!
+ Your config is using old namespace for activity expiration configuration. Setting should work for now, but you are advised to change to new namespace to prevent possible issues later:
+ """
+
+ move_namespace_and_warn(
+ [
+ {Pleroma.ActivityExpiration, Pleroma.Workers.PurgeExpiredActivity,
+ "\n* `config :pleroma, Pleroma.ActivityExpiration` is now `config :pleroma, Pleroma.Workers.PurgeExpiredActivity`"}
+ ],
+ warning_preface
+ )
+ end
end
diff --git a/lib/pleroma/config/oban.ex b/lib/pleroma/config/oban.ex
index c2d56ebab..9f601b1a3 100644
--- a/lib/pleroma/config/oban.ex
+++ b/lib/pleroma/config/oban.ex
@@ -5,7 +5,11 @@ def warn do
oban_config = Pleroma.Config.get(Oban)
crontab =
- [Pleroma.Workers.Cron.StatsWorker]
+ [
+ Pleroma.Workers.Cron.StatsWorker,
+ Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker,
+ Pleroma.Workers.Cron.ClearOauthTokenWorker
+ ]
|> Enum.reduce(oban_config[:crontab], fn removed_worker, acc ->
with acc when is_list(acc) <- acc,
setting when is_tuple(setting) <-
diff --git a/lib/pleroma/gun/conn.ex b/lib/pleroma/gun/conn.ex
index 75b1ffc0a..477e19c6e 100644
--- a/lib/pleroma/gun/conn.ex
+++ b/lib/pleroma/gun/conn.ex
@@ -50,10 +50,10 @@ defp do_open(uri, %{proxy: {proxy_host, proxy_port}} = opts) do
with open_opts <- Map.delete(opts, :tls_opts),
{:ok, conn} <- Gun.open(proxy_host, proxy_port, open_opts),
- {:ok, _} <- Gun.await_up(conn, opts[:connect_timeout]),
+ {:ok, protocol} <- Gun.await_up(conn, opts[:connect_timeout]),
stream <- Gun.connect(conn, connect_opts),
{:response, :fin, 200, _} <- Gun.await(conn, stream) do
- {:ok, conn}
+ {:ok, conn, protocol}
else
error ->
Logger.warn(
@@ -88,8 +88,8 @@ defp do_open(uri, %{proxy: {proxy_type, proxy_host, proxy_port}} = opts) do
|> Map.put(:socks_opts, socks_opts)
with {:ok, conn} <- Gun.open(proxy_host, proxy_port, opts),
- {:ok, _} <- Gun.await_up(conn, opts[:connect_timeout]) do
- {:ok, conn}
+ {:ok, protocol} <- Gun.await_up(conn, opts[:connect_timeout]) do
+ {:ok, conn, protocol}
else
error ->
Logger.warn(
@@ -106,8 +106,8 @@ defp do_open(%URI{host: host, port: port} = uri, opts) do
host = Pleroma.HTTP.AdapterHelper.parse_host(host)
with {:ok, conn} <- Gun.open(host, port, opts),
- {:ok, _} <- Gun.await_up(conn, opts[:connect_timeout]) do
- {:ok, conn}
+ {:ok, protocol} <- Gun.await_up(conn, opts[:connect_timeout]) do
+ {:ok, conn, protocol}
else
error ->
Logger.warn(
diff --git a/lib/pleroma/gun/connection_pool/worker.ex b/lib/pleroma/gun/connection_pool/worker.ex
index c36332817..49d41e4c7 100644
--- a/lib/pleroma/gun/connection_pool/worker.ex
+++ b/lib/pleroma/gun/connection_pool/worker.ex
@@ -15,7 +15,7 @@ def init([_key, _uri, _opts, _client_pid] = opts) do
@impl true
def handle_continue({:connect, [key, uri, opts, client_pid]}, _) do
- with {:ok, conn_pid} <- Gun.Conn.open(uri, opts),
+ with {:ok, conn_pid, protocol} <- Gun.Conn.open(uri, opts),
Process.link(conn_pid) do
time = :erlang.monotonic_time(:millisecond)
@@ -27,8 +27,12 @@ def handle_continue({:connect, [key, uri, opts, client_pid]}, _) do
send(client_pid, {:conn_pid, conn_pid})
{:noreply,
- %{key: key, timer: nil, client_monitors: %{client_pid => Process.monitor(client_pid)}},
- :hibernate}
+ %{
+ key: key,
+ timer: nil,
+ client_monitors: %{client_pid => Process.monitor(client_pid)},
+ protocol: protocol
+ }, :hibernate}
else
err ->
{:stop, {:shutdown, err}, nil}
@@ -53,14 +57,20 @@ def handle_cast({:remove_client, client_pid}, state) do
end
@impl true
- def handle_call(:add_client, {client_pid, _}, %{key: key} = state) do
+ def handle_call(:add_client, {client_pid, _}, %{key: key, protocol: protocol} = state) do
time = :erlang.monotonic_time(:millisecond)
- {{conn_pid, _, _, _}, _} =
+ {{conn_pid, used_by, _, _}, _} =
Registry.update_value(@registry, key, fn {conn_pid, used_by, crf, last_reference} ->
{conn_pid, [client_pid | used_by], crf(time - last_reference, crf), time}
end)
+ :telemetry.execute(
+ [:pleroma, :connection_pool, :client, :add],
+ %{client_pid: client_pid, clients: used_by},
+ %{key: state.key, protocol: protocol}
+ )
+
state =
if state.timer != nil do
Process.cancel_timer(state[:timer])
@@ -131,7 +141,7 @@ def handle_info({:gun_down, _pid, _protocol, _reason, _killed_streams}, state) d
@impl true
def handle_info({:DOWN, _ref, :process, pid, reason}, state) do
:telemetry.execute(
- [:pleroma, :connection_pool, :client_death],
+ [:pleroma, :connection_pool, :client, :dead],
%{client_pid: pid, reason: reason},
%{key: state.key}
)
diff --git a/lib/pleroma/instances/instance.ex b/lib/pleroma/instances/instance.ex
index 8bf53c090..6948651c7 100644
--- a/lib/pleroma/instances/instance.ex
+++ b/lib/pleroma/instances/instance.ex
@@ -159,13 +159,11 @@ defp scrape_favicon(%URI{} = instance_uri) do
Pleroma.HTTP.get(to_string(instance_uri), [{"accept", "text/html"}],
adapter: [pool: :media]
),
- favicon_rel <-
- html
- |> Floki.parse_document!()
- |> Floki.attribute("link[rel=icon]", "href")
- |> List.first(),
- favicon <- URI.merge(instance_uri, favicon_rel) |> to_string(),
- true <- is_binary(favicon) do
+ {_, [favicon_rel | _]} when is_binary(favicon_rel) <-
+ {:parse,
+ html |> Floki.parse_document!() |> Floki.attribute("link[rel=icon]", "href")},
+ {_, favicon} when is_binary(favicon) <-
+ {:merge, URI.merge(instance_uri, favicon_rel) |> to_string()} do
favicon
else
_ -> nil
diff --git a/lib/pleroma/mfa/token.ex b/lib/pleroma/mfa/token.ex
index 0b2449971..69b64c0e8 100644
--- a/lib/pleroma/mfa/token.ex
+++ b/lib/pleroma/mfa/token.ex
@@ -10,10 +10,11 @@ defmodule Pleroma.MFA.Token do
alias Pleroma.Repo
alias Pleroma.User
alias Pleroma.Web.OAuth.Authorization
- alias Pleroma.Web.OAuth.Token, as: OAuthToken
@expires 300
+ @type t() :: %__MODULE__{}
+
schema "mfa_tokens" do
field(:token, :string)
field(:valid_until, :naive_datetime_usec)
@@ -24,6 +25,7 @@ defmodule Pleroma.MFA.Token do
timestamps()
end
+ @spec get_by_token(String.t()) :: {:ok, t()} | {:error, :not_found}
def get_by_token(token) do
from(
t in __MODULE__,
@@ -33,33 +35,40 @@ def get_by_token(token) do
|> Repo.find_resource()
end
- def validate(token) do
- with {:fetch_token, {:ok, token}} <- {:fetch_token, get_by_token(token)},
- {:expired, false} <- {:expired, is_expired?(token)} do
+ @spec validate(String.t()) :: {:ok, t()} | {:error, :not_found} | {:error, :expired_token}
+ def validate(token_str) do
+ with {:ok, token} <- get_by_token(token_str),
+ false <- expired?(token) do
{:ok, token}
- else
- {:expired, _} -> {:error, :expired_token}
- {:fetch_token, _} -> {:error, :not_found}
- error -> {:error, error}
end
end
- def create_token(%User{} = user) do
- %__MODULE__{}
- |> change
- |> assign_user(user)
- |> put_token
- |> put_valid_until
- |> Repo.insert()
+ defp expired?(%__MODULE__{valid_until: valid_until}) do
+ with true <- NaiveDateTime.diff(NaiveDateTime.utc_now(), valid_until) > 0 do
+ {:error, :expired_token}
+ end
end
- def create_token(user, authorization) do
+ @spec create(User.t(), Authorization.t() | nil) :: {:ok, t()} | {:error, Ecto.Changeset.t()}
+ def create(user, authorization \\ nil) do
+ with {:ok, token} <- do_create(user, authorization) do
+ Pleroma.Workers.PurgeExpiredToken.enqueue(%{
+ token_id: token.id,
+ valid_until: DateTime.from_naive!(token.valid_until, "Etc/UTC"),
+ mod: __MODULE__
+ })
+
+ {:ok, token}
+ end
+ end
+
+ defp do_create(user, authorization) do
%__MODULE__{}
- |> change
+ |> change()
|> assign_user(user)
- |> assign_authorization(authorization)
- |> put_token
- |> put_valid_until
+ |> maybe_assign_authorization(authorization)
+ |> put_token()
+ |> put_valid_until()
|> Repo.insert()
end
@@ -69,15 +78,19 @@ defp assign_user(changeset, user) do
|> validate_required([:user])
end
- defp assign_authorization(changeset, authorization) do
+ defp maybe_assign_authorization(changeset, %Authorization{} = authorization) do
changeset
|> put_assoc(:authorization, authorization)
|> validate_required([:authorization])
end
+ defp maybe_assign_authorization(changeset, _), do: changeset
+
defp put_token(changeset) do
+ token = Pleroma.Web.OAuth.Token.Utils.generate_token()
+
changeset
- |> change(%{token: OAuthToken.Utils.generate_token()})
+ |> change(%{token: token})
|> validate_required([:token])
|> unique_constraint(:token)
end
@@ -89,18 +102,4 @@ defp put_valid_until(changeset) do
|> change(%{valid_until: expires_in})
|> validate_required([:valid_until])
end
-
- def is_expired?(%__MODULE__{valid_until: valid_until}) do
- NaiveDateTime.diff(NaiveDateTime.utc_now(), valid_until) > 0
- end
-
- def is_expired?(_), do: false
-
- def delete_expired_tokens do
- from(
- q in __MODULE__,
- where: fragment("?", q.valid_until) < ^Timex.now()
- )
- |> Repo.delete_all()
- end
end
diff --git a/lib/pleroma/object/containment.ex b/lib/pleroma/object/containment.ex
index bc88e8a0c..29cb3d672 100644
--- a/lib/pleroma/object/containment.ex
+++ b/lib/pleroma/object/containment.ex
@@ -44,13 +44,6 @@ def get_object(_) do
nil
end
- # TODO: We explicitly allow 'tag' URIs through, due to references to legacy OStatus
- # objects being present in the test suite environment. Once these objects are
- # removed, please also remove this.
- if Mix.env() == :test do
- defp compare_uris(_, %URI{scheme: "tag"}), do: :ok
- end
-
defp compare_uris(%URI{host: host} = _id_uri, %URI{host: host} = _other_uri), do: :ok
defp compare_uris(_id_uri, _other_uri), do: :error
diff --git a/lib/pleroma/reverse_proxy/client/tesla.ex b/lib/pleroma/reverse_proxy/client/tesla.ex
index d5a339681..4b118eec2 100644
--- a/lib/pleroma/reverse_proxy/client/tesla.ex
+++ b/lib/pleroma/reverse_proxy/client/tesla.ex
@@ -28,7 +28,7 @@ def request(method, url, headers, body, opts \\ []) do
url,
body,
headers,
- Keyword.put(opts, :adapter, opts)
+ opts
) do
if is_map(response.body) and method != :head do
{:ok, response.status, response.headers, response.body}
diff --git a/lib/pleroma/stats.ex b/lib/pleroma/stats.ex
index e7f8d272c..e5c9c668b 100644
--- a/lib/pleroma/stats.ex
+++ b/lib/pleroma/stats.ex
@@ -23,6 +23,7 @@ def start_link(_) do
@impl true
def init(_args) do
+ if Pleroma.Config.get(:env) == :test, do: :ok = Ecto.Adapters.SQL.Sandbox.checkout(Repo)
{:ok, nil, {:continue, :calculate_stats}}
end
diff --git a/lib/pleroma/telemetry/logger.ex b/lib/pleroma/telemetry/logger.ex
index 4cacae02f..197b1d091 100644
--- a/lib/pleroma/telemetry/logger.ex
+++ b/lib/pleroma/telemetry/logger.ex
@@ -7,7 +7,8 @@ defmodule Pleroma.Telemetry.Logger do
[:pleroma, :connection_pool, :reclaim, :start],
[:pleroma, :connection_pool, :reclaim, :stop],
[:pleroma, :connection_pool, :provision_failure],
- [:pleroma, :connection_pool, :client_death]
+ [:pleroma, :connection_pool, :client, :dead],
+ [:pleroma, :connection_pool, :client, :add]
]
def attach do
:telemetry.attach_many("pleroma-logger", @events, &handle_event/4, [])
@@ -62,7 +63,7 @@ def handle_event(
end
def handle_event(
- [:pleroma, :connection_pool, :client_death],
+ [:pleroma, :connection_pool, :client, :dead],
%{client_pid: client_pid, reason: reason},
%{key: key},
_
@@ -73,4 +74,17 @@ def handle_event(
}"
end)
end
+
+ def handle_event(
+ [:pleroma, :connection_pool, :client, :add],
+ %{clients: [_, _ | _] = clients},
+ %{key: key, protocol: :http},
+ _
+ ) do
+ Logger.info(fn ->
+ "Pool worker for #{key}: #{length(clients)} clients are using an HTTP1 connection at the same time, head-of-line blocking might occur."
+ end)
+ end
+
+ def handle_event([:pleroma, :connection_pool, :client, :add], _, _, _), do: :ok
end
diff --git a/lib/pleroma/upload/filter.ex b/lib/pleroma/upload/filter.ex
index dbdadc97f..661135634 100644
--- a/lib/pleroma/upload/filter.ex
+++ b/lib/pleroma/upload/filter.ex
@@ -15,7 +15,11 @@ defmodule Pleroma.Upload.Filter do
require Logger
- @callback filter(Pleroma.Upload.t()) :: :ok | {:ok, Pleroma.Upload.t()} | {:error, any()}
+ @callback filter(Pleroma.Upload.t()) ::
+ {:ok, :filtered}
+ | {:ok, :noop}
+ | {:ok, :filtered, Pleroma.Upload.t()}
+ | {:error, any()}
@spec filter([module()], Pleroma.Upload.t()) :: {:ok, Pleroma.Upload.t()} | {:error, any()}
@@ -25,10 +29,13 @@ def filter([], upload) do
def filter([filter | rest], upload) do
case filter.filter(upload) do
- :ok ->
+ {:ok, :filtered} ->
filter(rest, upload)
- {:ok, upload} ->
+ {:ok, :filtered, upload} ->
+ filter(rest, upload)
+
+ {:ok, :noop} ->
filter(rest, upload)
error ->
diff --git a/lib/pleroma/upload/filter/anonymize_filename.ex b/lib/pleroma/upload/filter/anonymize_filename.ex
index 07ead8203..fc456e4f4 100644
--- a/lib/pleroma/upload/filter/anonymize_filename.ex
+++ b/lib/pleroma/upload/filter/anonymize_filename.ex
@@ -16,9 +16,11 @@ defmodule Pleroma.Upload.Filter.AnonymizeFilename do
def filter(%Upload{name: name} = upload) do
extension = List.last(String.split(name, "."))
name = predefined_name(extension) || random(extension)
- {:ok, %Upload{upload | name: name}}
+ {:ok, :filtered, %Upload{upload | name: name}}
end
+ def filter(_), do: {:ok, :noop}
+
@spec predefined_name(String.t()) :: String.t() | nil
defp predefined_name(extension) do
with name when not is_nil(name) <- Config.get([__MODULE__, :text]),
diff --git a/lib/pleroma/upload/filter/dedupe.ex b/lib/pleroma/upload/filter/dedupe.ex
index 41218a918..86cbc8996 100644
--- a/lib/pleroma/upload/filter/dedupe.ex
+++ b/lib/pleroma/upload/filter/dedupe.ex
@@ -17,8 +17,8 @@ def filter(%Upload{name: name, tempfile: tempfile} = upload) do
|> Base.encode16(case: :lower)
filename = shasum <> "." <> extension
- {:ok, %Upload{upload | id: shasum, path: filename}}
+ {:ok, :filtered, %Upload{upload | id: shasum, path: filename}}
end
- def filter(_), do: :ok
+ def filter(_), do: {:ok, :noop}
end
diff --git a/lib/pleroma/upload/filter/exiftool.ex b/lib/pleroma/upload/filter/exiftool.ex
index ea8798fe3..1fd0cfdaa 100644
--- a/lib/pleroma/upload/filter/exiftool.ex
+++ b/lib/pleroma/upload/filter/exiftool.ex
@@ -9,11 +9,15 @@ defmodule Pleroma.Upload.Filter.Exiftool do
"""
@behaviour Pleroma.Upload.Filter
- @spec filter(Pleroma.Upload.t()) :: :ok | {:error, String.t()}
+ @spec filter(Pleroma.Upload.t()) :: {:ok, any()} | {:error, String.t()}
+
+ # webp is not compatible with exiftool at this time
+ def filter(%Pleroma.Upload{content_type: "image/webp"}), do: {:ok, :noop}
+
def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _}) do
try do
case System.cmd("exiftool", ["-overwrite_original", "-gps:all=", file], parallelism: true) do
- {_response, 0} -> :ok
+ {_response, 0} -> {:ok, :filtered}
{error, 1} -> {:error, error}
end
rescue
@@ -22,5 +26,5 @@ def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _}) do
end
end
- def filter(_), do: :ok
+ def filter(_), do: {:ok, :noop}
end
diff --git a/lib/pleroma/upload/filter/mogrifun.ex b/lib/pleroma/upload/filter/mogrifun.ex
index c8fa7b190..363e5cf0f 100644
--- a/lib/pleroma/upload/filter/mogrifun.ex
+++ b/lib/pleroma/upload/filter/mogrifun.ex
@@ -38,16 +38,16 @@ defmodule Pleroma.Upload.Filter.Mogrifun do
[{"fill", "yellow"}, {"tint", "40"}]
]
- @spec filter(Pleroma.Upload.t()) :: :ok | {:error, String.t()}
+ @spec filter(Pleroma.Upload.t()) :: {:ok, atom()} | {:error, String.t()}
def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _}) do
try do
Filter.Mogrify.do_filter(file, [Enum.random(@filters)])
- :ok
+ {:ok, :filtered}
rescue
_e in ErlangError ->
{:error, "mogrify command not found"}
end
end
- def filter(_), do: :ok
+ def filter(_), do: {:ok, :noop}
end
diff --git a/lib/pleroma/upload/filter/mogrify.ex b/lib/pleroma/upload/filter/mogrify.ex
index 7a45add5a..71968fd9c 100644
--- a/lib/pleroma/upload/filter/mogrify.ex
+++ b/lib/pleroma/upload/filter/mogrify.ex
@@ -8,18 +8,18 @@ defmodule Pleroma.Upload.Filter.Mogrify do
@type conversion :: action :: String.t() | {action :: String.t(), opts :: String.t()}
@type conversions :: conversion() | [conversion()]
- @spec filter(Pleroma.Upload.t()) :: :ok | {:error, String.t()}
+ @spec filter(Pleroma.Upload.t()) :: {:ok, :atom} | {:error, String.t()}
def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _}) do
try do
do_filter(file, Pleroma.Config.get!([__MODULE__, :args]))
- :ok
+ {:ok, :filtered}
rescue
_e in ErlangError ->
{:error, "mogrify command not found"}
end
end
- def filter(_), do: :ok
+ def filter(_), do: {:ok, :noop}
def do_filter(file, filters) do
file
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 46e03553c..039fd89f3 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -1125,31 +1125,31 @@ def get_followers_query(%User{} = user, nil) do
User.Query.build(%{followers: user, deactivated: false})
end
- def get_followers_query(user, page) do
+ def get_followers_query(%User{} = user, page) do
user
|> get_followers_query(nil)
|> User.Query.paginate(page, 20)
end
@spec get_followers_query(User.t()) :: Ecto.Query.t()
- def get_followers_query(user), do: get_followers_query(user, nil)
+ def get_followers_query(%User{} = user), do: get_followers_query(user, nil)
@spec get_followers(User.t(), pos_integer() | nil) :: {:ok, list(User.t())}
- def get_followers(user, page \\ nil) do
+ def get_followers(%User{} = user, page \\ nil) do
user
|> get_followers_query(page)
|> Repo.all()
end
@spec get_external_followers(User.t(), pos_integer() | nil) :: {:ok, list(User.t())}
- def get_external_followers(user, page \\ nil) do
+ def get_external_followers(%User{} = user, page \\ nil) do
user
|> get_followers_query(page)
|> User.Query.build(%{external: true})
|> Repo.all()
end
- def get_followers_ids(user, page \\ nil) do
+ def get_followers_ids(%User{} = user, page \\ nil) do
user
|> get_followers_query(page)
|> select([u], u.id)
@@ -1161,29 +1161,29 @@ def get_friends_query(%User{} = user, nil) do
User.Query.build(%{friends: user, deactivated: false})
end
- def get_friends_query(user, page) do
+ def get_friends_query(%User{} = user, page) do
user
|> get_friends_query(nil)
|> User.Query.paginate(page, 20)
end
@spec get_friends_query(User.t()) :: Ecto.Query.t()
- def get_friends_query(user), do: get_friends_query(user, nil)
+ def get_friends_query(%User{} = user), do: get_friends_query(user, nil)
- def get_friends(user, page \\ nil) do
+ def get_friends(%User{} = user, page \\ nil) do
user
|> get_friends_query(page)
|> Repo.all()
end
- def get_friends_ap_ids(user) do
+ def get_friends_ap_ids(%User{} = user) do
user
|> get_friends_query(nil)
|> select([u], u.ap_id)
|> Repo.all()
end
- def get_friends_ids(user, page \\ nil) do
+ def get_friends_ids(%User{} = user, page \\ nil) do
user
|> get_friends_query(page)
|> select([u], u.id)
@@ -2335,6 +2335,11 @@ def add_pinnned_activity(user, %Pleroma.Activity{id: id}) do
max_pinned_statuses = Config.get([:instance, :max_pinned_statuses], 0)
params = %{pinned_activities: user.pinned_activities ++ [id]}
+ # if pinned activity was scheduled for deletion, we remove job
+ if expiration = Pleroma.Workers.PurgeExpiredActivity.get_expiration(id) do
+ Oban.cancel_job(expiration.id)
+ end
+
user
|> cast(params, [:pinned_activities])
|> validate_length(:pinned_activities,
@@ -2347,9 +2352,19 @@ def add_pinnned_activity(user, %Pleroma.Activity{id: id}) do
|> update_and_set_cache()
end
- def remove_pinnned_activity(user, %Pleroma.Activity{id: id}) do
+ def remove_pinnned_activity(user, %Pleroma.Activity{id: id, data: data}) do
params = %{pinned_activities: List.delete(user.pinned_activities, id)}
+ # if pinned activity was scheduled for deletion, we reschedule it for deletion
+ if data["expires_at"] do
+ {:ok, expires_at, _} = DateTime.from_iso8601(data["expires_at"])
+
+ Pleroma.Workers.PurgeExpiredActivity.enqueue(%{
+ activity_id: id,
+ expires_at: expires_at
+ })
+ end
+
user
|> cast(params, [:pinned_activities])
|> update_and_set_cache()
diff --git a/lib/pleroma/user/search.ex b/lib/pleroma/user/search.ex
index adbef7fb8..7babd47ea 100644
--- a/lib/pleroma/user/search.ex
+++ b/lib/pleroma/user/search.ex
@@ -115,8 +115,8 @@ defp trigram_rank(query, query_string) do
)
end
- defp base_query(_user, false), do: User
- defp base_query(user, true), do: User.get_friends_query(user)
+ defp base_query(%User{} = user, true), do: User.get_friends_query(user)
+ defp base_query(_user, _following), do: User
defp filter_invisible_users(query) do
from(q in query, where: q.invisible == false)
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index 333621413..66a9f78a3 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -5,7 +5,6 @@
defmodule Pleroma.Web.ActivityPub.ActivityPub do
alias Pleroma.Activity
alias Pleroma.Activity.Ir.Topics
- alias Pleroma.ActivityExpiration
alias Pleroma.Config
alias Pleroma.Constants
alias Pleroma.Conversation
@@ -102,7 +101,9 @@ def persist(object, meta) do
local: local,
recipients: recipients,
actor: object["actor"]
- }) do
+ }),
+ # TODO: add tests for expired activities, when Note type will be supported in new pipeline
+ {:ok, _} <- maybe_create_activity_expiration(activity) do
{:ok, activity, meta}
end
end
@@ -111,23 +112,14 @@ def persist(object, meta) do
def insert(map, local \\ true, fake \\ false, bypass_actor_check \\ false) when is_map(map) do
with nil <- Activity.normalize(map),
map <- lazy_put_activity_defaults(map, fake),
- true <- bypass_actor_check || check_actor_is_active(map["actor"]),
- {_, true} <- {:remote_limit_error, check_remote_limit(map)},
+ {_, true} <- {:actor_check, bypass_actor_check || check_actor_is_active(map["actor"])},
+ {_, true} <- {:remote_limit_pass, check_remote_limit(map)},
{:ok, map} <- MRF.filter(map),
{recipients, _, _} = get_recipients(map),
{:fake, false, map, recipients} <- {:fake, fake, map, recipients},
{:containment, :ok} <- {:containment, Containment.contain_child(map)},
- {:ok, map, object} <- insert_full_object(map) do
- {:ok, activity} =
- %Activity{
- data: map,
- local: local,
- actor: map["actor"],
- recipients: recipients
- }
- |> Repo.insert()
- |> maybe_create_activity_expiration()
-
+ {:ok, map, object} <- insert_full_object(map),
+ {:ok, activity} <- insert_activity_with_expiration(map, local, recipients) do
# Splice in the child object if we have one.
activity = Maps.put_if_present(activity, :object, object)
@@ -138,6 +130,15 @@ def insert(map, local \\ true, fake \\ false, bypass_actor_check \\ false) when
%Activity{} = activity ->
{:ok, activity}
+ {:actor_check, _} ->
+ {:error, false}
+
+ {:containment, _} = error ->
+ error
+
+ {:error, _} = error ->
+ error
+
{:fake, true, map, recipients} ->
activity = %Activity{
data: map,
@@ -150,8 +151,24 @@ def insert(map, local \\ true, fake \\ false, bypass_actor_check \\ false) when
Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
{:ok, activity}
- error ->
- {:error, error}
+ {:remote_limit_pass, _} ->
+ {:error, :remote_limit}
+
+ {:reject, reason} ->
+ {:error, reason}
+ end
+ end
+
+ defp insert_activity_with_expiration(data, local, recipients) do
+ struct = %Activity{
+ data: data,
+ local: local,
+ actor: data["actor"],
+ recipients: recipients
+ }
+
+ with {:ok, activity} <- Repo.insert(struct) do
+ maybe_create_activity_expiration(activity)
end
end
@@ -164,13 +181,19 @@ def notify_and_stream(activity) do
stream_out_participations(participations)
end
- defp maybe_create_activity_expiration({:ok, %{data: %{"expires_at" => expires_at}} = activity}) do
- with {:ok, _} <- ActivityExpiration.create(activity, expires_at) do
+ defp maybe_create_activity_expiration(
+ %{data: %{"expires_at" => %DateTime{} = expires_at}} = activity
+ ) do
+ with {:ok, _job} <-
+ Pleroma.Workers.PurgeExpiredActivity.enqueue(%{
+ activity_id: activity.id,
+ expires_at: expires_at
+ }) do
{:ok, activity}
end
end
- defp maybe_create_activity_expiration(result), do: result
+ defp maybe_create_activity_expiration(activity), do: {:ok, activity}
defp create_or_bump_conversation(activity, actor) do
with {:ok, conversation} <- Conversation.create_or_bump_for(activity),
diff --git a/lib/pleroma/web/activity_pub/activity_pub_controller.ex b/lib/pleroma/web/activity_pub/activity_pub_controller.ex
index 220c4fe52..732c44271 100644
--- a/lib/pleroma/web/activity_pub/activity_pub_controller.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub_controller.ex
@@ -399,21 +399,30 @@ def read_inbox(%{assigns: %{user: %User{nickname: as_nickname}}} = conn, %{
defp handle_user_activity(
%User{} = user,
- %{"type" => "Create", "object" => %{"type" => "Note"}} = params
+ %{"type" => "Create", "object" => %{"type" => "Note"} = object} = params
) do
- object =
- params["object"]
- |> Map.merge(Map.take(params, ["to", "cc"]))
- |> Map.put("attributedTo", user.ap_id())
- |> Transmogrifier.fix_object()
+ content = if is_binary(object["content"]), do: object["content"], else: ""
+ name = if is_binary(object["name"]), do: object["name"], else: ""
+ summary = if is_binary(object["summary"]), do: object["summary"], else: ""
+ length = String.length(content <> name <> summary)
- ActivityPub.create(%{
- to: params["to"],
- actor: user,
- context: object["context"],
- object: object,
- additional: Map.take(params, ["cc"])
- })
+ if length > Pleroma.Config.get([:instance, :limit]) do
+ {:error, dgettext("errors", "Note is over the character limit")}
+ else
+ object =
+ object
+ |> Map.merge(Map.take(params, ["to", "cc"]))
+ |> Map.put("attributedTo", user.ap_id())
+ |> Transmogrifier.fix_object()
+
+ ActivityPub.create(%{
+ to: params["to"],
+ actor: user,
+ context: object["context"],
+ object: object,
+ additional: Map.take(params, ["cc"])
+ })
+ end
end
defp handle_user_activity(%User{} = user, %{"type" => "Delete"} = params) do
diff --git a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex
index 7b4c78e0f..bee47b4ed 100644
--- a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex
+++ b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex
@@ -31,10 +31,10 @@ defp note?(activity) do
defp maybe_add_expiration(activity) do
days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365)
- expires_at = NaiveDateTime.utc_now() |> Timex.shift(days: days)
+ expires_at = DateTime.utc_now() |> Timex.shift(days: days)
with %{"expires_at" => existing_expires_at} <- activity,
- :lt <- NaiveDateTime.compare(existing_expires_at, expires_at) do
+ :lt <- DateTime.compare(existing_expires_at, expires_at) do
activity
else
_ -> Map.put(activity, "expires_at", expires_at)
diff --git a/lib/pleroma/web/activity_pub/mrf/force_bot_unlisted_policy.ex b/lib/pleroma/web/activity_pub/mrf/force_bot_unlisted_policy.ex
new file mode 100644
index 000000000..ea9c3d3f5
--- /dev/null
+++ b/lib/pleroma/web/activity_pub/mrf/force_bot_unlisted_policy.ex
@@ -0,0 +1,56 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicy do
+ alias Pleroma.User
+ @behaviour Pleroma.Web.ActivityPub.MRF
+ @moduledoc "Remove bot posts from federated timeline"
+
+ require Pleroma.Constants
+
+ defp check_by_actor_type(user), do: user.actor_type in ["Application", "Service"]
+ defp check_by_nickname(user), do: Regex.match?(~r/bot@|ebooks@/i, user.nickname)
+
+ defp check_if_bot(user), do: check_by_actor_type(user) or check_by_nickname(user)
+
+ @impl true
+ def filter(
+ %{
+ "type" => "Create",
+ "to" => to,
+ "cc" => cc,
+ "actor" => actor,
+ "object" => object
+ } = message
+ ) do
+ user = User.get_cached_by_ap_id(actor)
+ isbot = check_if_bot(user)
+
+ if isbot and Enum.member?(to, Pleroma.Constants.as_public()) do
+ to = List.delete(to, Pleroma.Constants.as_public()) ++ [user.follower_address]
+ cc = List.delete(cc, user.follower_address) ++ [Pleroma.Constants.as_public()]
+
+ object =
+ object
+ |> Map.put("to", to)
+ |> Map.put("cc", cc)
+
+ message =
+ message
+ |> Map.put("to", to)
+ |> Map.put("cc", cc)
+ |> Map.put("object", object)
+
+ {:ok, message}
+ else
+ {:ok, message}
+ end
+ end
+
+ @impl true
+ def filter(message), do: {:ok, message}
+
+ @impl true
+ def describe, do: {:ok, %{}}
+end
diff --git a/lib/pleroma/web/activity_pub/side_effects.ex b/lib/pleroma/web/activity_pub/side_effects.ex
index a5e2323bd..46a8be767 100644
--- a/lib/pleroma/web/activity_pub/side_effects.ex
+++ b/lib/pleroma/web/activity_pub/side_effects.ex
@@ -7,7 +7,6 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do
"""
alias Pleroma.Activity
alias Pleroma.Activity.Ir.Topics
- alias Pleroma.ActivityExpiration
alias Pleroma.Chat
alias Pleroma.Chat.MessageReference
alias Pleroma.FollowingRelationship
@@ -188,10 +187,6 @@ def handle(%{data: %{"type" => "Create"}} = activity, meta) do
Object.increase_replies_count(in_reply_to)
end
- if expires_at = activity.data["expires_at"] do
- ActivityExpiration.create(activity, expires_at)
- end
-
BackgroundWorker.enqueue("fetch_data_for_activity", %{"activity_id" => activity.id})
meta =
diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex
index 0831efadc..af4384213 100644
--- a/lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/lib/pleroma/web/activity_pub/transmogrifier.ex
@@ -168,7 +168,6 @@ def fix_in_reply_to(object, options \\ [])
def fix_in_reply_to(%{"inReplyTo" => in_reply_to} = object, options)
when not is_nil(in_reply_to) do
in_reply_to_id = prepare_in_reply_to(in_reply_to)
- object = Map.put(object, "inReplyToAtomUri", in_reply_to_id)
depth = (options[:depth] || 0) + 1
if Federator.allowed_thread_distance?(depth) do
@@ -176,9 +175,8 @@ def fix_in_reply_to(%{"inReplyTo" => in_reply_to} = object, options)
%Activity{} <- Activity.get_create_by_object_ap_id(replied_object.data["id"]) do
object
|> Map.put("inReplyTo", replied_object.data["id"])
- |> Map.put("inReplyToAtomUri", object["inReplyToAtomUri"] || in_reply_to_id)
|> Map.put("context", replied_object.data["context"] || object["conversation"])
- |> Map.drop(["conversation"])
+ |> Map.drop(["conversation", "inReplyToAtomUri"])
else
e ->
Logger.warn("Couldn't fetch #{inspect(in_reply_to_id)}, error: #{inspect(e)}")
diff --git a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex
index aa2af1ab5..f5e4d49f9 100644
--- a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex
+++ b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex
@@ -379,8 +379,7 @@ defp maybe_parse_filters(filters) do
filters
|> String.split(",")
|> Enum.filter(&Enum.member?(@filters, &1))
- |> Enum.map(&String.to_atom/1)
- |> Map.new(&{&1, true})
+ |> Map.new(&{String.to_existing_atom(&1), true})
end
def right_add_multiple(%{assigns: %{user: admin}} = conn, %{
diff --git a/lib/pleroma/web/common_api/activity_draft.ex b/lib/pleroma/web/common_api/activity_draft.ex
index f849b2e01..548f76609 100644
--- a/lib/pleroma/web/common_api/activity_draft.ex
+++ b/lib/pleroma/web/common_api/activity_draft.ex
@@ -202,7 +202,7 @@ defp changes(draft) do
additional =
case draft.expires_at do
- %NaiveDateTime{} = expires_at -> Map.put(additional, "expires_at", expires_at)
+ %DateTime{} = expires_at -> Map.put(additional, "expires_at", expires_at)
_ -> additional
end
diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex
index b217c4d10..b49a95791 100644
--- a/lib/pleroma/web/common_api/common_api.ex
+++ b/lib/pleroma/web/common_api/common_api.ex
@@ -4,7 +4,6 @@
defmodule Pleroma.Web.CommonAPI do
alias Pleroma.Activity
- alias Pleroma.ActivityExpiration
alias Pleroma.Conversation.Participation
alias Pleroma.Formatter
alias Pleroma.Object
@@ -381,9 +380,9 @@ def get_replied_to_visibility(activity) do
def check_expiry_date({:ok, nil} = res), do: res
def check_expiry_date({:ok, in_seconds}) do
- expiry = NaiveDateTime.utc_now() |> NaiveDateTime.add(in_seconds)
+ expiry = DateTime.add(DateTime.utc_now(), in_seconds)
- if ActivityExpiration.expires_late_enough?(expiry) do
+ if Pleroma.Workers.PurgeExpiredActivity.expires_late_enough?(expiry) do
{:ok, expiry}
else
{:error, "Expiry date is too soon"}
diff --git a/lib/pleroma/web/feed/tag_controller.ex b/lib/pleroma/web/feed/tag_controller.ex
index 39b2a766a..93a8294b7 100644
--- a/lib/pleroma/web/feed/tag_controller.ex
+++ b/lib/pleroma/web/feed/tag_controller.ex
@@ -9,7 +9,15 @@ defmodule Pleroma.Web.Feed.TagController do
alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.Feed.FeedView
- def feed(conn, %{"tag" => raw_tag} = params) do
+ def feed(conn, params) do
+ unless Pleroma.Config.restrict_unauthenticated_access?(:activities, :local) do
+ render_feed(conn, params)
+ else
+ render_error(conn, :not_found, "Not found")
+ end
+ end
+
+ def render_feed(conn, %{"tag" => raw_tag} = params) do
{format, tag} = parse_tag(raw_tag)
activities =
diff --git a/lib/pleroma/web/feed/user_controller.ex b/lib/pleroma/web/feed/user_controller.ex
index 9cd334a33..71eb1ea7e 100644
--- a/lib/pleroma/web/feed/user_controller.ex
+++ b/lib/pleroma/web/feed/user_controller.ex
@@ -37,7 +37,15 @@ def feed_redirect(conn, %{"nickname" => nickname}) do
end
end
- def feed(conn, %{"nickname" => nickname} = params) do
+ def feed(conn, params) do
+ unless Pleroma.Config.restrict_unauthenticated_access?(:profiles, :local) do
+ render_feed(conn, params)
+ else
+ errors(conn, {:error, :not_found})
+ end
+ end
+
+ def render_feed(conn, %{"nickname" => nickname} = params) do
format = get_format(conn)
format =
diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex
index 3fe1967be..ca42917fc 100644
--- a/lib/pleroma/web/mastodon_api/views/status_view.ex
+++ b/lib/pleroma/web/mastodon_api/views/status_view.ex
@@ -8,7 +8,6 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
require Pleroma.Constants
alias Pleroma.Activity
- alias Pleroma.ActivityExpiration
alias Pleroma.HTML
alias Pleroma.Object
alias Pleroma.Repo
@@ -245,8 +244,8 @@ def render("show.json", %{activity: %{data: %{"object" => _object}} = activity}
expires_at =
with true <- client_posted_this_activity,
- %ActivityExpiration{scheduled_at: scheduled_at} <-
- ActivityExpiration.get_by_activity_id(activity.id) do
+ %Oban.Job{scheduled_at: scheduled_at} <-
+ Pleroma.Workers.PurgeExpiredActivity.get_expiration(activity.id) do
scheduled_at
else
_ -> nil
diff --git a/lib/pleroma/web/mastodon_api/websocket_handler.ex b/lib/pleroma/web/mastodon_api/websocket_handler.ex
index 94e4595d8..cf923ded8 100644
--- a/lib/pleroma/web/mastodon_api/websocket_handler.ex
+++ b/lib/pleroma/web/mastodon_api/websocket_handler.ex
@@ -37,12 +37,12 @@ def init(%{qs: qs} = req, state) do
else
{:error, :bad_topic} ->
Logger.debug("#{__MODULE__} bad topic #{inspect(req)}")
- {:ok, req} = :cowboy_req.reply(404, req)
+ req = :cowboy_req.reply(404, req)
{:ok, req, state}
{:error, :unauthorized} ->
Logger.debug("#{__MODULE__} authentication error: #{inspect(req)}")
- {:ok, req} = :cowboy_req.reply(401, req)
+ req = :cowboy_req.reply(401, req)
{:ok, req, state}
end
end
@@ -64,7 +64,9 @@ def websocket_handle(:pong, state) do
{:ok, %{state | timer: timer()}}
end
- # We never receive messages.
+ # We only receive pings for now
+ def websocket_handle(:ping, state), do: {:ok, state}
+
def websocket_handle(frame, state) do
Logger.error("#{__MODULE__} received frame: #{inspect(frame)}")
{:ok, state}
@@ -98,6 +100,10 @@ def websocket_info(:tick, state) do
{:reply, :ping, %{state | timer: nil, count: 0}, :hibernate}
end
+ # State can be `[]` only in case we terminate before switching to websocket,
+ # we already log errors for these cases in `init/1`, so just do nothing here
+ def terminate(_reason, _req, []), do: :ok
+
def terminate(reason, _req, state) do
Logger.debug(
"#{__MODULE__} terminating websocket connection for user #{
diff --git a/lib/pleroma/web/metadata.ex b/lib/pleroma/web/metadata.ex
index a9f70c43e..0f2d8d1e7 100644
--- a/lib/pleroma/web/metadata.ex
+++ b/lib/pleroma/web/metadata.ex
@@ -7,8 +7,9 @@ defmodule Pleroma.Web.Metadata do
def build_tags(params) do
providers = [
+ Pleroma.Web.Metadata.Providers.RelMe,
Pleroma.Web.Metadata.Providers.RestrictIndexing
- | Pleroma.Config.get([__MODULE__, :providers], [])
+ | activated_providers()
]
Enum.reduce(providers, "", fn parser, acc ->
@@ -42,4 +43,12 @@ def activity_nsfw?(%{data: %{"sensitive" => sensitive}}) do
def activity_nsfw?(_) do
false
end
+
+ defp activated_providers do
+ unless Pleroma.Config.restrict_unauthenticated_access?(:activities, :local) do
+ [Pleroma.Web.Metadata.Providers.Feed | Pleroma.Config.get([__MODULE__, :providers], [])]
+ else
+ []
+ end
+ end
end
diff --git a/lib/pleroma/web/oauth/oauth_controller.ex b/lib/pleroma/web/oauth/oauth_controller.ex
index dd00600ea..26e68be42 100644
--- a/lib/pleroma/web/oauth/oauth_controller.ex
+++ b/lib/pleroma/web/oauth/oauth_controller.ex
@@ -145,7 +145,10 @@ def create_authorization(
def after_create_authorization(%Plug.Conn{} = conn, %Authorization{} = auth, %{
"authorization" => %{"redirect_uri" => @oob_token_redirect_uri}
}) do
- render(conn, "oob_authorization_created.html", %{auth: auth})
+ # Enforcing the view to reuse the template when calling from other controllers
+ conn
+ |> put_view(OAuthView)
+ |> render("oob_authorization_created.html", %{auth: auth})
end
def after_create_authorization(%Plug.Conn{} = conn, %Authorization{} = auth, %{
@@ -197,7 +200,7 @@ defp handle_create_authorization_error(
{:mfa_required, user, auth, _},
params
) do
- {:ok, token} = MFA.Token.create_token(user, auth)
+ {:ok, token} = MFA.Token.create(user, auth)
data = %{
"mfa_token" => token.token,
@@ -579,7 +582,7 @@ defp put_session_registration_id(%Plug.Conn{} = conn, registration_id),
do: put_session(conn, :registration_id, registration_id)
defp build_and_response_mfa_token(user, auth) do
- with {:ok, token} <- MFA.Token.create_token(user, auth) do
+ with {:ok, token} <- MFA.Token.create(user, auth) do
MFAView.render("mfa_response.json", %{token: token, user: user})
end
end
diff --git a/lib/pleroma/web/oauth/token.ex b/lib/pleroma/web/oauth/token.ex
index 08bb7326d..de37998f2 100644
--- a/lib/pleroma/web/oauth/token.ex
+++ b/lib/pleroma/web/oauth/token.ex
@@ -50,7 +50,7 @@ def exchange_token(app, auth) do
true <- auth.app_id == app.id do
user = if auth.user_id, do: User.get_cached_by_id(auth.user_id), else: %User{}
- create_token(
+ create(
app,
user,
%{scopes: auth.scopes}
@@ -83,8 +83,22 @@ defp put_valid_until(changeset, attrs) do
|> validate_required([:valid_until])
end
- @spec create_token(App.t(), User.t(), map()) :: {:ok, Token} | {:error, Changeset.t()}
- def create_token(%App{} = app, %User{} = user, attrs \\ %{}) do
+ @spec create(App.t(), User.t(), map()) :: {:ok, Token} | {:error, Changeset.t()}
+ def create(%App{} = app, %User{} = user, attrs \\ %{}) do
+ with {:ok, token} <- do_create(app, user, attrs) do
+ if Pleroma.Config.get([:oauth2, :clean_expired_tokens]) do
+ Pleroma.Workers.PurgeExpiredToken.enqueue(%{
+ token_id: token.id,
+ valid_until: DateTime.from_naive!(token.valid_until, "Etc/UTC"),
+ mod: __MODULE__
+ })
+ end
+
+ {:ok, token}
+ end
+ end
+
+ defp do_create(app, user, attrs) do
%__MODULE__{user_id: user.id, app_id: app.id}
|> cast(%{scopes: attrs[:scopes] || app.scopes}, [:scopes])
|> validate_required([:scopes, :app_id])
@@ -105,11 +119,6 @@ def delete_user_token(%User{id: user_id}, token_id) do
|> Repo.delete_all()
end
- def delete_expired_tokens do
- Query.get_expired_tokens()
- |> Repo.delete_all()
- end
-
def get_user_tokens(%User{id: user_id}) do
Query.get_by_user(user_id)
|> Query.preload([:app])
diff --git a/lib/pleroma/web/oauth/token/clean_worker.ex b/lib/pleroma/web/oauth/token/clean_worker.ex
deleted file mode 100644
index e3aa4eb7e..000000000
--- a/lib/pleroma/web/oauth/token/clean_worker.ex
+++ /dev/null
@@ -1,38 +0,0 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
-# SPDX-License-Identifier: AGPL-3.0-only
-
-defmodule Pleroma.Web.OAuth.Token.CleanWorker do
- @moduledoc """
- The module represents functions to clean an expired OAuth and MFA tokens.
- """
- use GenServer
-
- @ten_seconds 10_000
- @one_day 86_400_000
-
- alias Pleroma.MFA
- alias Pleroma.Web.OAuth
- alias Pleroma.Workers.BackgroundWorker
-
- def start_link(_), do: GenServer.start_link(__MODULE__, %{})
-
- def init(_) do
- Process.send_after(self(), :perform, @ten_seconds)
- {:ok, nil}
- end
-
- @doc false
- def handle_info(:perform, state) do
- BackgroundWorker.enqueue("clean_expired_tokens", %{})
- interval = Pleroma.Config.get([:oauth2, :clean_expired_tokens_interval], @one_day)
-
- Process.send_after(self(), :perform, interval)
- {:noreply, state}
- end
-
- def perform(:clean) do
- OAuth.Token.delete_expired_tokens()
- MFA.Token.delete_expired_tokens()
- end
-end
diff --git a/lib/pleroma/web/oauth/token/query.ex b/lib/pleroma/web/oauth/token/query.ex
index 93d6e26ed..fd6d9b112 100644
--- a/lib/pleroma/web/oauth/token/query.ex
+++ b/lib/pleroma/web/oauth/token/query.ex
@@ -33,12 +33,6 @@ def get_by_id(query \\ Token, id) do
from(q in query, where: q.id == ^id)
end
- @spec get_expired_tokens(query, DateTime.t() | nil) :: query
- def get_expired_tokens(query \\ Token, date \\ nil) do
- expired_date = date || Timex.now()
- from(q in query, where: fragment("?", q.valid_until) < ^expired_date)
- end
-
@spec get_by_user(query, String.t()) :: query
def get_by_user(query \\ Token, user_id) do
from(q in query, where: q.user_id == ^user_id)
diff --git a/lib/pleroma/web/oauth/token/strategy/refresh_token.ex b/lib/pleroma/web/oauth/token/strategy/refresh_token.ex
index debc29b0b..625b0fde2 100644
--- a/lib/pleroma/web/oauth/token/strategy/refresh_token.ex
+++ b/lib/pleroma/web/oauth/token/strategy/refresh_token.ex
@@ -46,7 +46,7 @@ defp revoke_access_token(token) do
defp create_access_token({:error, error}, _), do: {:error, error}
defp create_access_token({:ok, token}, %{app: app, user: user} = token_params) do
- Token.create_token(app, user, add_refresh_token(token_params, token.refresh_token))
+ Token.create(app, user, add_refresh_token(token_params, token.refresh_token))
end
defp add_refresh_token(params, token) do
diff --git a/lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex b/lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex
index 8443d906b..ffabe29a6 100644
--- a/lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex
+++ b/lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex
@@ -1,2 +1,2 @@
Successfully authorized
-Token code is <%= @auth.token %>
+Token code is
<%= @auth.token %>
diff --git a/lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex b/lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex
index 961aad976..82785c4b9 100644
--- a/lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex
+++ b/lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex
@@ -1,2 +1,2 @@
Authorization exists
-Access token is <%= @token.token %>
+Access token is
<%= @token.token %>
diff --git a/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex b/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex
index 521dc9322..072d889e2 100644
--- a/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex
+++ b/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex
@@ -135,7 +135,7 @@ defp handle_follow_error(conn, {:verify_mfa_code, followee, token, _} = _) do
end
defp handle_follow_error(conn, {:mfa_required, followee, user, _} = _) do
- {:ok, %{token: token}} = MFA.Token.create_token(user)
+ {:ok, %{token: token}} = MFA.Token.create(user)
render(conn, "follow_mfa.html", %{followee: followee, mfa_token: token, error: false})
end
diff --git a/lib/pleroma/workers/cron/clear_oauth_token_worker.ex b/lib/pleroma/workers/cron/clear_oauth_token_worker.ex
deleted file mode 100644
index 276f47efc..000000000
--- a/lib/pleroma/workers/cron/clear_oauth_token_worker.ex
+++ /dev/null
@@ -1,23 +0,0 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
-# SPDX-License-Identifier: AGPL-3.0-only
-
-defmodule Pleroma.Workers.Cron.ClearOauthTokenWorker do
- @moduledoc """
- The worker to cleanup expired oAuth tokens.
- """
-
- use Oban.Worker, queue: "background"
-
- alias Pleroma.Config
- alias Pleroma.Web.OAuth.Token
-
- @impl Oban.Worker
- def perform(_job) do
- if Config.get([:oauth2, :clean_expired_tokens], false) do
- Token.delete_expired_tokens()
- end
-
- :ok
- end
-end
diff --git a/lib/pleroma/workers/cron/purge_expired_activities_worker.ex b/lib/pleroma/workers/cron/purge_expired_activities_worker.ex
deleted file mode 100644
index 6549207fc..000000000
--- a/lib/pleroma/workers/cron/purge_expired_activities_worker.ex
+++ /dev/null
@@ -1,48 +0,0 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
-# SPDX-License-Identifier: AGPL-3.0-only
-
-defmodule Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker do
- @moduledoc """
- The worker to purge expired activities.
- """
-
- use Oban.Worker, queue: "activity_expiration"
-
- alias Pleroma.Activity
- alias Pleroma.ActivityExpiration
- alias Pleroma.Config
- alias Pleroma.User
- alias Pleroma.Web.CommonAPI
-
- require Logger
-
- @interval :timer.minutes(1)
-
- @impl Oban.Worker
- def perform(_job) do
- if Config.get([ActivityExpiration, :enabled]) do
- Enum.each(ActivityExpiration.due_expirations(@interval), &delete_activity/1)
- end
- after
- :ok
- end
-
- def delete_activity(%ActivityExpiration{activity_id: activity_id}) do
- with {:activity, %Activity{} = activity} <-
- {:activity, Activity.get_by_id_with_object(activity_id)},
- {:user, %User{} = user} <- {:user, User.get_by_ap_id(activity.object.data["actor"])} do
- CommonAPI.delete(activity.id, user)
- else
- {:activity, _} ->
- Logger.error(
- "#{__MODULE__} Couldn't delete expired activity: not found activity ##{activity_id}"
- )
-
- {:user, _} ->
- Logger.error(
- "#{__MODULE__} Couldn't delete expired activity: not found actor of ##{activity_id}"
- )
- end
- end
-end
diff --git a/lib/pleroma/workers/purge_expired_activity.ex b/lib/pleroma/workers/purge_expired_activity.ex
new file mode 100644
index 000000000..c168890a2
--- /dev/null
+++ b/lib/pleroma/workers/purge_expired_activity.ex
@@ -0,0 +1,72 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Workers.PurgeExpiredActivity do
+ @moduledoc """
+ Worker which purges expired activity.
+ """
+
+ use Oban.Worker, queue: :activity_expiration, max_attempts: 1
+
+ import Ecto.Query
+
+ alias Pleroma.Activity
+
+ @spec enqueue(map()) ::
+ {:ok, Oban.Job.t()}
+ | {:error, :expired_activities_disabled}
+ | {:error, :expiration_too_close}
+ def enqueue(args) do
+ with true <- enabled?() do
+ {scheduled_at, args} = Map.pop(args, :expires_at)
+
+ args
+ |> new(scheduled_at: scheduled_at)
+ |> Oban.insert()
+ end
+ end
+
+ @impl true
+ def perform(%Oban.Job{args: %{"activity_id" => id}}) do
+ with %Activity{} = activity <- find_activity(id),
+ %Pleroma.User{} = user <- find_user(activity.object.data["actor"]) do
+ Pleroma.Web.CommonAPI.delete(activity.id, user)
+ end
+ end
+
+ defp enabled? do
+ with false <- Pleroma.Config.get([__MODULE__, :enabled], false) do
+ {:error, :expired_activities_disabled}
+ end
+ end
+
+ defp find_activity(id) do
+ with nil <- Activity.get_by_id_with_object(id) do
+ {:error, :activity_not_found}
+ end
+ end
+
+ defp find_user(ap_id) do
+ with nil <- Pleroma.User.get_by_ap_id(ap_id) do
+ {:error, :user_not_found}
+ end
+ end
+
+ def get_expiration(id) do
+ from(j in Oban.Job,
+ where: j.state == "scheduled",
+ where: j.queue == "activity_expiration",
+ where: fragment("?->>'activity_id' = ?", j.args, ^id)
+ )
+ |> Pleroma.Repo.one()
+ end
+
+ @spec expires_late_enough?(DateTime.t()) :: boolean()
+ def expires_late_enough?(scheduled_at) do
+ now = DateTime.utc_now()
+ diff = DateTime.diff(scheduled_at, now, :millisecond)
+ min_lifetime = Pleroma.Config.get([__MODULE__, :min_lifetime], 600)
+ diff > :timer.seconds(min_lifetime)
+ end
+end
diff --git a/lib/pleroma/workers/purge_expired_token.ex b/lib/pleroma/workers/purge_expired_token.ex
new file mode 100644
index 000000000..a81e0cd28
--- /dev/null
+++ b/lib/pleroma/workers/purge_expired_token.ex
@@ -0,0 +1,29 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Workers.PurgeExpiredToken do
+ @moduledoc """
+ Worker which purges expired OAuth tokens
+ """
+
+ use Oban.Worker, queue: :token_expiration, max_attempts: 1
+
+ @spec enqueue(%{token_id: integer(), valid_until: DateTime.t(), mod: module()}) ::
+ {:ok, Oban.Job.t()} | {:error, Ecto.Changeset.t()}
+ def enqueue(args) do
+ {scheduled_at, args} = Map.pop(args, :valid_until)
+
+ args
+ |> __MODULE__.new(scheduled_at: scheduled_at)
+ |> Oban.insert()
+ end
+
+ @impl true
+ def perform(%Oban.Job{args: %{"token_id" => id, "mod" => module}}) do
+ module
+ |> String.to_existing_atom()
+ |> Pleroma.Repo.get(id)
+ |> Pleroma.Repo.delete()
+ end
+end
diff --git a/mix.exs b/mix.exs
index 9499aab2d..18f748672 100644
--- a/mix.exs
+++ b/mix.exs
@@ -180,7 +180,7 @@ defp deps do
{:flake_id, "~> 0.1.0"},
{:concurrent_limiter,
git: "https://git.pleroma.social/pleroma/elixir-libraries/concurrent_limiter.git",
- ref: "55e92f84b4ed531bd487952a71040a9c69dc2807"},
+ ref: "d81be41024569330f296fc472e24198d7499ba78"},
{:remote_ip,
git: "https://git.pleroma.social/pleroma/remote_ip.git",
ref: "b647d0deecaa3acb140854fe4bda5b7e1dc6d1c8"},
diff --git a/mix.lock b/mix.lock
index c4f9cd28c..a28c47017 100644
--- a/mix.lock
+++ b/mix.lock
@@ -14,7 +14,7 @@
"certifi": {:hex, :certifi, "2.5.1", "867ce347f7c7d78563450a18a6a28a8090331e77fa02380b4a21962a65d36ee5", [:rebar3], [{:parse_trans, "~>3.3", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm", "805abd97539caf89ec6d4732c91e62ba9da0cda51ac462380bbd28ee697a8c42"},
"combine": {:hex, :combine, "0.10.0", "eff8224eeb56498a2af13011d142c5e7997a80c8f5b97c499f84c841032e429f", [:mix], [], "hexpm", "1b1dbc1790073076580d0d1d64e42eae2366583e7aecd455d1215b0d16f2451b"},
"comeonin": {:hex, :comeonin, "5.3.1", "7fe612b739c78c9c1a75186ef2d322ce4d25032d119823269d0aa1e2f1e20025", [:mix], [], "hexpm", "d6222483060c17f0977fad1b7401ef0c5863c985a64352755f366aee3799c245"},
- "concurrent_limiter": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/concurrent_limiter.git", "55e92f84b4ed531bd487952a71040a9c69dc2807", [ref: "55e92f84b4ed531bd487952a71040a9c69dc2807"]},
+ "concurrent_limiter": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/concurrent_limiter.git", "d81be41024569330f296fc472e24198d7499ba78", [ref: "d81be41024569330f296fc472e24198d7499ba78"]},
"connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [:mix], [], "hexpm", "4a0850c9be22a43af9920a71ab17c051f5f7d45c209e40269a1938832510e4d9"},
"cors_plug": {:hex, :cors_plug, "2.0.2", "2b46083af45e4bc79632bd951550509395935d3e7973275b2b743bd63cc942ce", [:mix], [{:plug, "~> 1.8", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "f0d0e13f71c51fd4ef8b2c7e051388e4dfb267522a83a22392c856de7e46465f"},
"cowboy": {:hex, :cowboy, "2.8.0", "f3dc62e35797ecd9ac1b50db74611193c29815401e53bac9a5c0577bd7bc667d", [:rebar3], [{:cowlib, "~> 2.9.1", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "~> 1.7.1", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "4643e4fba74ac96d4d152c75803de6fad0b3fa5df354c71afdd6cbeeb15fac8a"},
diff --git a/priv/gettext/es/LC_MESSAGES/errors.po b/priv/gettext/es/LC_MESSAGES/errors.po
new file mode 100644
index 000000000..0a6fceaad
--- /dev/null
+++ b/priv/gettext/es/LC_MESSAGES/errors.po
@@ -0,0 +1,586 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-09 09:49+0000\n"
+"PO-Revision-Date: 2020-09-11 21:26+0000\n"
+"Last-Translator: tarteka \n"
+"Language-Team: Spanish \n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.0.4\n"
+
+## This file is a PO Template file.
+##
+## `msgid`s here are often extracted from source code.
+## Add new translations manually only if they're dynamic
+## translations that can't be statically extracted.
+##
+## Run `mix gettext.extract` to bring this file up to
+## date. Leave `msgstr`s empty as changing them here as no
+## effect: edit them in PO (`.po`) files instead.
+## From Ecto.Changeset.cast/4
+msgid "can't be blank"
+msgstr "no puede estar en blanco"
+
+## From Ecto.Changeset.unique_constraint/3
+msgid "has already been taken"
+msgstr "ya está en uso"
+
+## From Ecto.Changeset.put_change/3
+msgid "is invalid"
+msgstr "es inválido"
+
+## From Ecto.Changeset.validate_format/3
+msgid "has invalid format"
+msgstr "el formato no es válido"
+
+## From Ecto.Changeset.validate_subset/3
+msgid "has an invalid entry"
+msgstr "tiene una entrada inválida"
+
+## From Ecto.Changeset.validate_exclusion/3
+msgid "is reserved"
+msgstr "está reservado"
+
+## From Ecto.Changeset.validate_confirmation/3
+msgid "does not match confirmation"
+msgstr "la confirmación no coincide"
+
+## From Ecto.Changeset.no_assoc_constraint/3
+msgid "is still associated with this entry"
+msgstr "todavía está asociado con esta entrada"
+
+msgid "are still associated with this entry"
+msgstr "todavía están asociados con esta entrada"
+
+## From Ecto.Changeset.validate_length/3
+msgid "should be %{count} character(s)"
+msgid_plural "should be %{count} character(s)"
+msgstr[0] "debe tener %{count} carácter"
+msgstr[1] "debe tener %{count} caracteres"
+
+msgid "should have %{count} item(s)"
+msgid_plural "should have %{count} item(s)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "should be at least %{count} character(s)"
+msgid_plural "should be at least %{count} character(s)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "should have at least %{count} item(s)"
+msgid_plural "should have at least %{count} item(s)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "should be at most %{count} character(s)"
+msgid_plural "should be at most %{count} character(s)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "should have at most %{count} item(s)"
+msgid_plural "should have at most %{count} item(s)"
+msgstr[0] ""
+msgstr[1] ""
+
+## From Ecto.Changeset.validate_number/3
+msgid "must be less than %{number}"
+msgstr ""
+
+msgid "must be greater than %{number}"
+msgstr "debe ser mayor que %{number}"
+
+msgid "must be less than or equal to %{number}"
+msgstr "debe ser menor o igual que %{number}"
+
+msgid "must be greater than or equal to %{number}"
+msgstr "deber ser mayor o igual que %{number}"
+
+msgid "must be equal to %{number}"
+msgstr "deber ser igual a %{number}"
+
+#: lib/pleroma/web/common_api/common_api.ex:505
+#, elixir-format
+msgid "Account not found"
+msgstr "Cuenta no encontrada"
+
+#: lib/pleroma/web/common_api/common_api.ex:339
+#, elixir-format
+msgid "Already voted"
+msgstr "Ya has votado"
+
+#: lib/pleroma/web/oauth/oauth_controller.ex:359
+#, elixir-format
+msgid "Bad request"
+msgstr "Solicitud incorrecta"
+
+#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:426
+#, elixir-format
+msgid "Can't delete object"
+msgstr "No se puede eliminar el objeto"
+
+#: lib/pleroma/web/controller_helper.ex:105
+#: lib/pleroma/web/controller_helper.ex:111
+#, elixir-format
+msgid "Can't display this activity"
+msgstr "No se puede mostrar esta actividad"
+
+#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:285
+#, elixir-format
+msgid "Can't find user"
+msgstr "No se puede encontrar al usuario"
+
+#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:61
+#, elixir-format
+msgid "Can't get favorites"
+msgstr "No se puede obtener los favoritos"
+
+#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:438
+#, elixir-format
+msgid "Can't like object"
+msgstr ""
+
+#: lib/pleroma/web/common_api/utils.ex:563
+#, elixir-format
+msgid "Cannot post an empty status without attachments"
+msgstr "No se puede publicar un estado vacío y sin archivos adjuntos"
+
+#: lib/pleroma/web/common_api/utils.ex:511
+#, elixir-format
+msgid "Comment must be up to %{max_size} characters"
+msgstr ""
+
+#: lib/pleroma/config/config_db.ex:191
+#, elixir-format
+msgid "Config with params %{params} not found"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:181
+#: lib/pleroma/web/common_api/common_api.ex:185
+#, elixir-format
+msgid "Could not delete"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:231
+#, elixir-format
+msgid "Could not favorite"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:453
+#, elixir-format
+msgid "Could not pin"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:278
+#, elixir-format
+msgid "Could not unfavorite"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:463
+#, elixir-format
+msgid "Could not unpin"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:216
+#, elixir-format
+msgid "Could not unrepeat"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:512
+#: lib/pleroma/web/common_api/common_api.ex:521
+#, elixir-format
+msgid "Could not update state"
+msgstr ""
+
+#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:207
+#, elixir-format
+msgid "Error."
+msgstr ""
+
+#: lib/pleroma/web/twitter_api/twitter_api.ex:106
+#, elixir-format
+msgid "Invalid CAPTCHA"
+msgstr ""
+
+#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:116
+#: lib/pleroma/web/oauth/oauth_controller.ex:568
+#, elixir-format
+msgid "Invalid credentials"
+msgstr ""
+
+#: lib/pleroma/plugs/ensure_authenticated_plug.ex:38
+#, elixir-format
+msgid "Invalid credentials."
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:355
+#, elixir-format
+msgid "Invalid indices"
+msgstr ""
+
+#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:29
+#, elixir-format
+msgid "Invalid parameters"
+msgstr ""
+
+#: lib/pleroma/web/common_api/utils.ex:414
+#, elixir-format
+msgid "Invalid password."
+msgstr ""
+
+#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:220
+#, elixir-format
+msgid "Invalid request"
+msgstr ""
+
+#: lib/pleroma/web/twitter_api/twitter_api.ex:109
+#, elixir-format
+msgid "Kocaptcha service unavailable"
+msgstr ""
+
+#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:112
+#, elixir-format
+msgid "Missing parameters"
+msgstr ""
+
+#: lib/pleroma/web/common_api/utils.ex:547
+#, elixir-format
+msgid "No such conversation"
+msgstr ""
+
+#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:388
+#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:414 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:456
+#, elixir-format
+msgid "No such permission_group"
+msgstr ""
+
+#: lib/pleroma/plugs/uploaded_media.ex:84
+#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:486 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11
+#: lib/pleroma/web/feed/user_controller.ex:71 lib/pleroma/web/ostatus/ostatus_controller.ex:143
+#, elixir-format
+msgid "Not found"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:331
+#, elixir-format
+msgid "Poll's author can't vote"
+msgstr ""
+
+#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20
+#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:37 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:49
+#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:50 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:306
+#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71
+#, elixir-format
+msgid "Record not found"
+msgstr ""
+
+#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:35
+#: lib/pleroma/web/feed/user_controller.ex:77 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:36
+#: lib/pleroma/web/ostatus/ostatus_controller.ex:149
+#, elixir-format
+msgid "Something went wrong"
+msgstr ""
+
+#: lib/pleroma/web/common_api/activity_draft.ex:107
+#, elixir-format
+msgid "The message visibility must be direct"
+msgstr ""
+
+#: lib/pleroma/web/common_api/utils.ex:573
+#, elixir-format
+msgid "The status is over the character limit"
+msgstr ""
+
+#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31
+#, elixir-format
+msgid "This resource requires authentication."
+msgstr ""
+
+#: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206
+#, elixir-format
+msgid "Throttled"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:356
+#, elixir-format
+msgid "Too many choices"
+msgstr ""
+
+#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:443
+#, elixir-format
+msgid "Unhandled activity type"
+msgstr ""
+
+#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:485
+#, elixir-format
+msgid "You can't revoke your own admin status."
+msgstr ""
+
+#: lib/pleroma/web/oauth/oauth_controller.ex:221
+#: lib/pleroma/web/oauth/oauth_controller.ex:308
+#, elixir-format
+msgid "Your account is currently disabled"
+msgstr ""
+
+#: lib/pleroma/web/oauth/oauth_controller.ex:183
+#: lib/pleroma/web/oauth/oauth_controller.ex:331
+#, elixir-format
+msgid "Your login is missing a confirmed e-mail address"
+msgstr ""
+
+#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:390
+#, elixir-format
+msgid "can't read inbox of %{nickname} as %{as_nickname}"
+msgstr ""
+
+#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:473
+#, elixir-format
+msgid "can't update outbox of %{nickname} as %{as_nickname}"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:471
+#, elixir-format
+msgid "conversation is already muted"
+msgstr ""
+
+#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:314
+#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:492
+#, elixir-format
+msgid "error"
+msgstr ""
+
+#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:32
+#, elixir-format
+msgid "mascots can only be images"
+msgstr ""
+
+#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:62
+#, elixir-format
+msgid "not found"
+msgstr ""
+
+#: lib/pleroma/web/oauth/oauth_controller.ex:394
+#, elixir-format
+msgid "Bad OAuth request."
+msgstr ""
+
+#: lib/pleroma/web/twitter_api/twitter_api.ex:115
+#, elixir-format
+msgid "CAPTCHA already used"
+msgstr ""
+
+#: lib/pleroma/web/twitter_api/twitter_api.ex:112
+#, elixir-format
+msgid "CAPTCHA expired"
+msgstr ""
+
+#: lib/pleroma/plugs/uploaded_media.ex:57
+#, elixir-format
+msgid "Failed"
+msgstr ""
+
+#: lib/pleroma/web/oauth/oauth_controller.ex:410
+#, elixir-format
+msgid "Failed to authenticate: %{message}."
+msgstr ""
+
+#: lib/pleroma/web/oauth/oauth_controller.ex:441
+#, elixir-format
+msgid "Failed to set up user account."
+msgstr ""
+
+#: lib/pleroma/plugs/oauth_scopes_plug.ex:38
+#, elixir-format
+msgid "Insufficient permissions: %{permissions}."
+msgstr ""
+
+#: lib/pleroma/plugs/uploaded_media.ex:104
+#, elixir-format
+msgid "Internal Error"
+msgstr ""
+
+#: lib/pleroma/web/oauth/fallback_controller.ex:22
+#: lib/pleroma/web/oauth/fallback_controller.ex:29
+#, elixir-format
+msgid "Invalid Username/Password"
+msgstr ""
+
+#: lib/pleroma/web/twitter_api/twitter_api.ex:118
+#, elixir-format
+msgid "Invalid answer data"
+msgstr ""
+
+#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:33
+#, elixir-format
+msgid "Nodeinfo schema version not handled"
+msgstr ""
+
+#: lib/pleroma/web/oauth/oauth_controller.ex:172
+#, elixir-format
+msgid "This action is outside the authorized scopes"
+msgstr ""
+
+#: lib/pleroma/web/oauth/fallback_controller.ex:14
+#, elixir-format
+msgid "Unknown error, please check the details and try again."
+msgstr ""
+
+#: lib/pleroma/web/oauth/oauth_controller.ex:119
+#: lib/pleroma/web/oauth/oauth_controller.ex:158
+#, elixir-format
+msgid "Unlisted redirect_uri."
+msgstr ""
+
+#: lib/pleroma/web/oauth/oauth_controller.ex:390
+#, elixir-format
+msgid "Unsupported OAuth provider: %{provider}."
+msgstr ""
+
+#: lib/pleroma/uploaders/uploader.ex:72
+#, elixir-format
+msgid "Uploader callback timeout"
+msgstr ""
+
+#: lib/pleroma/web/uploader_controller.ex:23
+#, elixir-format
+msgid "bad request"
+msgstr ""
+
+#: lib/pleroma/web/twitter_api/twitter_api.ex:103
+#, elixir-format
+msgid "CAPTCHA Error"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:290
+#, elixir-format
+msgid "Could not add reaction emoji"
+msgstr ""
+
+#: lib/pleroma/web/common_api/common_api.ex:301
+#, elixir-format
+msgid "Could not remove reaction emoji"
+msgstr ""
+
+#: lib/pleroma/web/twitter_api/twitter_api.ex:129
+#, elixir-format
+msgid "Invalid CAPTCHA (Missing parameter: %{name})"
+msgstr ""
+
+#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92
+#, elixir-format
+msgid "List not found"
+msgstr ""
+
+#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:123
+#, elixir-format
+msgid "Missing parameter: %{name}"
+msgstr ""
+
+#: lib/pleroma/web/oauth/oauth_controller.ex:210
+#: lib/pleroma/web/oauth/oauth_controller.ex:321
+#, elixir-format
+msgid "Password reset is required"
+msgstr ""
+
+#: lib/pleroma/tests/auth_test_controller.ex:9
+#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:6
+#: lib/pleroma/web/admin_api/controllers/config_controller.ex:6 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:6
+#: lib/pleroma/web/admin_api/controllers/invite_controller.ex:6 lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:6
+#: lib/pleroma/web/admin_api/controllers/oauth_app_controller.ex:6 lib/pleroma/web/admin_api/controllers/relay_controller.ex:6
+#: lib/pleroma/web/admin_api/controllers/report_controller.ex:6 lib/pleroma/web/admin_api/controllers/status_controller.ex:6
+#: lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/embed_controller.ex:6
+#: lib/pleroma/web/fallback_redirect_controller.ex:6 lib/pleroma/web/feed/tag_controller.ex:6
+#: lib/pleroma/web/feed/user_controller.ex:6 lib/pleroma/web/mailer/subscription_controller.ex:2
+#: lib/pleroma/web/masto_fe_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6
+#: lib/pleroma/web/mastodon_api/controllers/app_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6
+#: lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6
+#: lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6
+#: lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6
+#: lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6
+#: lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14
+#: lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6
+#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/report_controller.ex:8
+#: lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6
+#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7
+#: lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6
+#: lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 lib/pleroma/web/mongooseim/mongoose_im_controller.ex:6
+#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 lib/pleroma/web/oauth/fallback_controller.ex:6
+#: lib/pleroma/web/oauth/mfa_controller.ex:10 lib/pleroma/web/oauth/oauth_controller.ex:6
+#: lib/pleroma/web/ostatus/ostatus_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6
+#: lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:5 lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex:6
+#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:2 lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex:6
+#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/notification_controller.ex:6
+#: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6
+#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 lib/pleroma/web/static_fe/static_fe_controller.ex:6
+#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6
+#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 lib/pleroma/web/twitter_api/twitter_api_controller.ex:6
+#: lib/pleroma/web/uploader_controller.ex:6 lib/pleroma/web/web_finger/web_finger_controller.ex:6
+#, elixir-format
+msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped."
+msgstr ""
+
+#: lib/pleroma/plugs/ensure_authenticated_plug.ex:28
+#, elixir-format
+msgid "Two-factor authentication enabled, you must use a access token."
+msgstr ""
+
+#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:210
+#, elixir-format
+msgid "Unexpected error occurred while adding file to pack."
+msgstr ""
+
+#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:138
+#, elixir-format
+msgid "Unexpected error occurred while creating pack."
+msgstr ""
+
+#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:278
+#, elixir-format
+msgid "Unexpected error occurred while removing file from pack."
+msgstr ""
+
+#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:250
+#, elixir-format
+msgid "Unexpected error occurred while updating file in pack."
+msgstr ""
+
+#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:179
+#, elixir-format
+msgid "Unexpected error occurred while updating pack metadata."
+msgstr ""
+
+#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61
+#, elixir-format
+msgid "Web push subscription is disabled on this Pleroma instance"
+msgstr ""
+
+#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:451
+#, elixir-format
+msgid "You can't revoke your own admin/moderator status."
+msgstr ""
+
+#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:126
+#, elixir-format
+msgid "authorization required for timeline view"
+msgstr ""
+
+#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:24
+#, elixir-format
+msgid "Access denied"
+msgstr ""
+
+#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:282
+#, elixir-format
+msgid "This API requires an authenticated user"
+msgstr ""
+
+#: lib/pleroma/plugs/user_is_admin_plug.ex:21
+#, elixir-format
+msgid "User is not an admin."
+msgstr ""
diff --git a/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs b/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs
new file mode 100644
index 000000000..241882ef6
--- /dev/null
+++ b/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs
@@ -0,0 +1,13 @@
+defmodule Pleroma.Repo.Migrations.RenameActivityExpirationSetting do
+ use Ecto.Migration
+
+ def change do
+ config = Pleroma.ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.ActivityExpiration})
+
+ if config do
+ config
+ |> Ecto.Changeset.change(key: Pleroma.Workers.PurgeExpiredActivity)
+ |> Pleroma.Repo.update()
+ end
+ end
+end
diff --git a/priv/repo/migrations/20200825061316_move_activity_expirations_to_oban.exs b/priv/repo/migrations/20200825061316_move_activity_expirations_to_oban.exs
new file mode 100644
index 000000000..cdc00d20b
--- /dev/null
+++ b/priv/repo/migrations/20200825061316_move_activity_expirations_to_oban.exs
@@ -0,0 +1,26 @@
+defmodule Pleroma.Repo.Migrations.MoveActivityExpirationsToOban do
+ use Ecto.Migration
+
+ import Ecto.Query, only: [from: 2]
+
+ def change do
+ Supervisor.start_link([{Oban, Pleroma.Config.get(Oban)}],
+ strategy: :one_for_one,
+ name: Pleroma.Supervisor
+ )
+
+ from(e in "activity_expirations",
+ select: %{id: e.id, activity_id: e.activity_id, scheduled_at: e.scheduled_at}
+ )
+ |> Pleroma.Repo.stream()
+ |> Stream.each(fn expiration ->
+ with {:ok, expires_at} <- DateTime.from_naive(expiration.scheduled_at, "Etc/UTC") do
+ Pleroma.Workers.PurgeExpiredActivity.enqueue(%{
+ activity_id: FlakeId.to_string(expiration.activity_id),
+ expires_at: expires_at
+ })
+ end
+ end)
+ |> Stream.run()
+ end
+end
diff --git a/priv/repo/migrations/20200825093037_drop_activity_expirations_table.exs b/priv/repo/migrations/20200825093037_drop_activity_expirations_table.exs
new file mode 100644
index 000000000..11c461427
--- /dev/null
+++ b/priv/repo/migrations/20200825093037_drop_activity_expirations_table.exs
@@ -0,0 +1,7 @@
+defmodule Pleroma.Repo.Migrations.DropActivityExpirationsTable do
+ use Ecto.Migration
+
+ def change do
+ drop(table("activity_expirations"))
+ end
+end
diff --git a/priv/repo/migrations/20200907084956_remove_cron_clear_oauth_token_worker_from_oban_config.exs b/priv/repo/migrations/20200907084956_remove_cron_clear_oauth_token_worker_from_oban_config.exs
new file mode 100644
index 000000000..b5a0a0ff6
--- /dev/null
+++ b/priv/repo/migrations/20200907084956_remove_cron_clear_oauth_token_worker_from_oban_config.exs
@@ -0,0 +1,19 @@
+defmodule Pleroma.Repo.Migrations.RemoveCronClearOauthTokenWorkerFromObanConfig do
+ use Ecto.Migration
+
+ def change do
+ with %Pleroma.ConfigDB{} = config <-
+ Pleroma.ConfigDB.get_by_params(%{group: :pleroma, key: Oban}),
+ crontab when is_list(crontab) <- config.value[:crontab],
+ index when is_integer(index) <-
+ Enum.find_index(crontab, fn {_, worker} ->
+ worker == Pleroma.Workers.Cron.ClearOauthTokenWorker
+ end) do
+ updated_value = Keyword.put(config.value, :crontab, List.delete_at(crontab, index))
+
+ config
+ |> Ecto.Changeset.change(value: updated_value)
+ |> Pleroma.Repo.update()
+ end
+ end
+end
diff --git a/priv/repo/migrations/20200907092050_move_tokens_expiration_into_oban.exs b/priv/repo/migrations/20200907092050_move_tokens_expiration_into_oban.exs
new file mode 100644
index 000000000..832bd02a7
--- /dev/null
+++ b/priv/repo/migrations/20200907092050_move_tokens_expiration_into_oban.exs
@@ -0,0 +1,36 @@
+defmodule Pleroma.Repo.Migrations.MoveTokensExpirationIntoOban do
+ use Ecto.Migration
+
+ import Ecto.Query, only: [from: 2]
+
+ def change do
+ Supervisor.start_link([{Oban, Pleroma.Config.get(Oban)}],
+ strategy: :one_for_one,
+ name: Pleroma.Supervisor
+ )
+
+ if Pleroma.Config.get([:oauth2, :clean_expired_tokens]) do
+ from(t in Pleroma.Web.OAuth.Token, where: t.valid_until > ^NaiveDateTime.utc_now())
+ |> Pleroma.Repo.stream()
+ |> Stream.each(fn token ->
+ Pleroma.Workers.PurgeExpiredToken.enqueue(%{
+ token_id: token.id,
+ valid_until: DateTime.from_naive!(token.valid_until, "Etc/UTC"),
+ mod: Pleroma.Web.OAuth.Token
+ })
+ end)
+ |> Stream.run()
+ end
+
+ from(t in Pleroma.MFA.Token, where: t.valid_until > ^NaiveDateTime.utc_now())
+ |> Pleroma.Repo.stream()
+ |> Stream.each(fn token ->
+ Pleroma.Workers.PurgeExpiredToken.enqueue(%{
+ token_id: token.id,
+ valid_until: DateTime.from_naive!(token.valid_until, "Etc/UTC"),
+ mod: Pleroma.MFA.Token
+ })
+ end)
+ |> Stream.run()
+ end
+end
diff --git a/priv/repo/migrations/20200911055909_remove_cron_jobs.exs b/priv/repo/migrations/20200911055909_remove_cron_jobs.exs
new file mode 100644
index 000000000..33897d128
--- /dev/null
+++ b/priv/repo/migrations/20200911055909_remove_cron_jobs.exs
@@ -0,0 +1,20 @@
+defmodule Pleroma.Repo.Migrations.RemoveCronJobs do
+ use Ecto.Migration
+
+ import Ecto.Query, only: [from: 2]
+
+ def up do
+ from(j in "oban_jobs",
+ where:
+ j.worker in ^[
+ "Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker",
+ "Pleroma.Workers.Cron.StatsWorker",
+ "Pleroma.Workers.Cron.ClearOauthTokenWorker"
+ ],
+ select: [:id]
+ )
+ |> Pleroma.Repo.delete_all()
+ end
+
+ def down, do: :ok
+end
diff --git a/priv/static/index.html b/priv/static/index.html
index c850e8756..6fa237768 100644
--- a/priv/static/index.html
+++ b/priv/static/index.html
@@ -1 +1 @@
-Pleroma
\ No newline at end of file
+Pleroma
\ No newline at end of file
diff --git a/priv/static/static/font/fontello.1598361006087.woff2 b/priv/static/static/font/fontello.1598361006087.woff2
deleted file mode 100644
index e9991e4f9..000000000
Binary files a/priv/static/static/font/fontello.1598361006087.woff2 and /dev/null differ
diff --git a/priv/static/static/font/fontello.1598361006087.eot b/priv/static/static/font/fontello.1599568314856.eot
similarity index 99%
rename from priv/static/static/font/fontello.1598361006087.eot
rename to priv/static/static/font/fontello.1599568314856.eot
index f25e4b7e4..1a6931a0e 100644
Binary files a/priv/static/static/font/fontello.1598361006087.eot and b/priv/static/static/font/fontello.1599568314856.eot differ
diff --git a/priv/static/static/font/fontello.1598361006087.svg b/priv/static/static/font/fontello.1599568314856.svg
similarity index 100%
rename from priv/static/static/font/fontello.1598361006087.svg
rename to priv/static/static/font/fontello.1599568314856.svg
diff --git a/priv/static/static/font/fontello.1598361006087.ttf b/priv/static/static/font/fontello.1599568314856.ttf
similarity index 99%
rename from priv/static/static/font/fontello.1598361006087.ttf
rename to priv/static/static/font/fontello.1599568314856.ttf
index ccedb3fa1..795464475 100644
Binary files a/priv/static/static/font/fontello.1598361006087.ttf and b/priv/static/static/font/fontello.1599568314856.ttf differ
diff --git a/priv/static/static/font/fontello.1598361006087.woff b/priv/static/static/font/fontello.1599568314856.woff
similarity index 98%
rename from priv/static/static/font/fontello.1598361006087.woff
rename to priv/static/static/font/fontello.1599568314856.woff
index de9dbbc35..64f566383 100644
Binary files a/priv/static/static/font/fontello.1598361006087.woff and b/priv/static/static/font/fontello.1599568314856.woff differ
diff --git a/priv/static/static/font/fontello.1599568314856.woff2 b/priv/static/static/font/fontello.1599568314856.woff2
new file mode 100644
index 000000000..972e70831
Binary files /dev/null and b/priv/static/static/font/fontello.1599568314856.woff2 differ
diff --git a/priv/static/static/fontello.1598361006087.css b/priv/static/static/fontello.1599568314856.css
similarity index 90%
rename from priv/static/static/fontello.1598361006087.css
rename to priv/static/static/fontello.1599568314856.css
index d6ff3f718..e636286c0 100644
Binary files a/priv/static/static/fontello.1598361006087.css and b/priv/static/static/fontello.1599568314856.css differ
diff --git a/priv/static/static/js/10.1c5cd5fbe554eca63dfe.js b/priv/static/static/js/10.1c5cd5fbe554eca63dfe.js
deleted file mode 100644
index cdd1409d9..000000000
Binary files a/priv/static/static/js/10.1c5cd5fbe554eca63dfe.js and /dev/null differ
diff --git a/priv/static/static/js/10.46fbbdfaf0d4800f349b.js b/priv/static/static/js/10.46fbbdfaf0d4800f349b.js
new file mode 100644
index 000000000..0fd8463df
Binary files /dev/null and b/priv/static/static/js/10.46fbbdfaf0d4800f349b.js differ
diff --git a/priv/static/static/js/10.1c5cd5fbe554eca63dfe.js.map b/priv/static/static/js/10.46fbbdfaf0d4800f349b.js.map
similarity index 56%
rename from priv/static/static/js/10.1c5cd5fbe554eca63dfe.js.map
rename to priv/static/static/js/10.46fbbdfaf0d4800f349b.js.map
index 5cbfc317f..bee2feb10 100644
Binary files a/priv/static/static/js/10.1c5cd5fbe554eca63dfe.js.map and b/priv/static/static/js/10.46fbbdfaf0d4800f349b.js.map differ
diff --git a/priv/static/static/js/12.6619e0b2f854637e76d4.js b/priv/static/static/js/12.6619e0b2f854637e76d4.js
deleted file mode 100644
index fdacd8b84..000000000
Binary files a/priv/static/static/js/12.6619e0b2f854637e76d4.js and /dev/null differ
diff --git a/priv/static/static/js/12.b3bf0bc313861d6ec36b.js b/priv/static/static/js/12.b3bf0bc313861d6ec36b.js
new file mode 100644
index 000000000..4890ca10a
Binary files /dev/null and b/priv/static/static/js/12.b3bf0bc313861d6ec36b.js differ
diff --git a/priv/static/static/js/12.6619e0b2f854637e76d4.js.map b/priv/static/static/js/12.b3bf0bc313861d6ec36b.js.map
similarity index 56%
rename from priv/static/static/js/12.6619e0b2f854637e76d4.js.map
rename to priv/static/static/js/12.b3bf0bc313861d6ec36b.js.map
index 9180668b2..28545ac96 100644
Binary files a/priv/static/static/js/12.6619e0b2f854637e76d4.js.map and b/priv/static/static/js/12.b3bf0bc313861d6ec36b.js.map differ
diff --git a/priv/static/static/js/13.c843797f3e374f0e3e1a.js b/priv/static/static/js/13.adb8a942514d735722c4.js
similarity index 95%
rename from priv/static/static/js/13.c843797f3e374f0e3e1a.js
rename to priv/static/static/js/13.adb8a942514d735722c4.js
index 6b28e9703..41abcb5a6 100644
Binary files a/priv/static/static/js/13.c843797f3e374f0e3e1a.js and b/priv/static/static/js/13.adb8a942514d735722c4.js differ
diff --git a/priv/static/static/js/13.c843797f3e374f0e3e1a.js.map b/priv/static/static/js/13.adb8a942514d735722c4.js.map
similarity index 56%
rename from priv/static/static/js/13.c843797f3e374f0e3e1a.js.map
rename to priv/static/static/js/13.adb8a942514d735722c4.js.map
index a11c0ac7c..2b8ff6d6c 100644
Binary files a/priv/static/static/js/13.c843797f3e374f0e3e1a.js.map and b/priv/static/static/js/13.adb8a942514d735722c4.js.map differ
diff --git a/priv/static/static/js/14.71f8caca49093a99e871.js b/priv/static/static/js/14.d015d9b2ea16407e389c.js
similarity index 99%
rename from priv/static/static/js/14.71f8caca49093a99e871.js
rename to priv/static/static/js/14.d015d9b2ea16407e389c.js
index 068f010d0..200a79625 100644
Binary files a/priv/static/static/js/14.71f8caca49093a99e871.js and b/priv/static/static/js/14.d015d9b2ea16407e389c.js differ
diff --git a/priv/static/static/js/14.71f8caca49093a99e871.js.map b/priv/static/static/js/14.d015d9b2ea16407e389c.js.map
similarity index 56%
rename from priv/static/static/js/14.71f8caca49093a99e871.js.map
rename to priv/static/static/js/14.d015d9b2ea16407e389c.js.map
index b18479521..49dab13f7 100644
Binary files a/priv/static/static/js/14.71f8caca49093a99e871.js.map and b/priv/static/static/js/14.d015d9b2ea16407e389c.js.map differ
diff --git a/priv/static/static/js/18.b29eedabe76445fe94b8.js b/priv/static/static/js/18.94946caca48930c224c7.js
similarity index 93%
rename from priv/static/static/js/18.b29eedabe76445fe94b8.js
rename to priv/static/static/js/18.94946caca48930c224c7.js
index f30ea09da..5a1f40c6d 100644
Binary files a/priv/static/static/js/18.b29eedabe76445fe94b8.js and b/priv/static/static/js/18.94946caca48930c224c7.js differ
diff --git a/priv/static/static/js/18.94946caca48930c224c7.js.map b/priv/static/static/js/18.94946caca48930c224c7.js.map
new file mode 100644
index 000000000..ad04b99ab
Binary files /dev/null and b/priv/static/static/js/18.94946caca48930c224c7.js.map differ
diff --git a/priv/static/static/js/18.b29eedabe76445fe94b8.js.map b/priv/static/static/js/18.b29eedabe76445fe94b8.js.map
deleted file mode 100644
index cb2b72921..000000000
Binary files a/priv/static/static/js/18.b29eedabe76445fe94b8.js.map and /dev/null differ
diff --git a/priv/static/static/js/19.ed1cd5db596618779f03.js b/priv/static/static/js/19.233c81ac2c28d55e9f13.js
similarity index 96%
rename from priv/static/static/js/19.ed1cd5db596618779f03.js
rename to priv/static/static/js/19.233c81ac2c28d55e9f13.js
index ca9952213..ace0a1d41 100644
Binary files a/priv/static/static/js/19.ed1cd5db596618779f03.js and b/priv/static/static/js/19.233c81ac2c28d55e9f13.js differ
diff --git a/priv/static/static/js/19.233c81ac2c28d55e9f13.js.map b/priv/static/static/js/19.233c81ac2c28d55e9f13.js.map
new file mode 100644
index 000000000..cd3f7354d
Binary files /dev/null and b/priv/static/static/js/19.233c81ac2c28d55e9f13.js.map differ
diff --git a/priv/static/static/js/19.ed1cd5db596618779f03.js.map b/priv/static/static/js/19.ed1cd5db596618779f03.js.map
deleted file mode 100644
index 8e7846eb3..000000000
Binary files a/priv/static/static/js/19.ed1cd5db596618779f03.js.map and /dev/null differ
diff --git a/priv/static/static/js/2.fb3f90b584362209a143.js b/priv/static/static/js/2.c92f4803ff24726cea58.js
similarity index 97%
rename from priv/static/static/js/2.fb3f90b584362209a143.js
rename to priv/static/static/js/2.c92f4803ff24726cea58.js
index 92093f8bc..55aa1f44e 100644
Binary files a/priv/static/static/js/2.fb3f90b584362209a143.js and b/priv/static/static/js/2.c92f4803ff24726cea58.js differ
diff --git a/priv/static/static/js/2.c92f4803ff24726cea58.js.map b/priv/static/static/js/2.c92f4803ff24726cea58.js.map
new file mode 100644
index 000000000..e3cc6a3fb
Binary files /dev/null and b/priv/static/static/js/2.c92f4803ff24726cea58.js.map differ
diff --git a/priv/static/static/js/2.fb3f90b584362209a143.js.map b/priv/static/static/js/2.fb3f90b584362209a143.js.map
deleted file mode 100644
index 8ea26cf44..000000000
Binary files a/priv/static/static/js/2.fb3f90b584362209a143.js.map and /dev/null differ
diff --git a/priv/static/static/js/20.6d311b830d8ac672729f.js.map b/priv/static/static/js/20.6d311b830d8ac672729f.js.map
deleted file mode 100644
index 728e16474..000000000
Binary files a/priv/static/static/js/20.6d311b830d8ac672729f.js.map and /dev/null differ
diff --git a/priv/static/static/js/20.6d311b830d8ac672729f.js b/priv/static/static/js/20.818c38d27369c3a4d677.js
similarity index 98%
rename from priv/static/static/js/20.6d311b830d8ac672729f.js
rename to priv/static/static/js/20.818c38d27369c3a4d677.js
index 16762eee3..133eac52d 100644
Binary files a/priv/static/static/js/20.6d311b830d8ac672729f.js and b/priv/static/static/js/20.818c38d27369c3a4d677.js differ
diff --git a/priv/static/static/js/20.818c38d27369c3a4d677.js.map b/priv/static/static/js/20.818c38d27369c3a4d677.js.map
new file mode 100644
index 000000000..696eab20f
Binary files /dev/null and b/priv/static/static/js/20.818c38d27369c3a4d677.js.map differ
diff --git a/priv/static/static/js/23.2c5f0fd2f2acd04592e8.js.map b/priv/static/static/js/23.2c5f0fd2f2acd04592e8.js.map
deleted file mode 100644
index 2f75cc5a0..000000000
Binary files a/priv/static/static/js/23.2c5f0fd2f2acd04592e8.js.map and /dev/null differ
diff --git a/priv/static/static/js/23.2c5f0fd2f2acd04592e8.js b/priv/static/static/js/23.a57a7845cc20fafd06d1.js
similarity index 91%
rename from priv/static/static/js/23.2c5f0fd2f2acd04592e8.js
rename to priv/static/static/js/23.a57a7845cc20fafd06d1.js
index 5ed52a202..b15a888df 100644
Binary files a/priv/static/static/js/23.2c5f0fd2f2acd04592e8.js and b/priv/static/static/js/23.a57a7845cc20fafd06d1.js differ
diff --git a/priv/static/static/js/23.a57a7845cc20fafd06d1.js.map b/priv/static/static/js/23.a57a7845cc20fafd06d1.js.map
new file mode 100644
index 000000000..0e5b421e6
Binary files /dev/null and b/priv/static/static/js/23.a57a7845cc20fafd06d1.js.map differ
diff --git a/priv/static/static/js/25.365514e44606a895ab50.js.map b/priv/static/static/js/25.365514e44606a895ab50.js.map
deleted file mode 100644
index 0973086f2..000000000
Binary files a/priv/static/static/js/25.365514e44606a895ab50.js.map and /dev/null differ
diff --git a/priv/static/static/js/25.365514e44606a895ab50.js b/priv/static/static/js/25.5a9efe20e3ae1352e6d2.js
similarity index 96%
rename from priv/static/static/js/25.365514e44606a895ab50.js
rename to priv/static/static/js/25.5a9efe20e3ae1352e6d2.js
index c5cccd1ba..e96c5e6ec 100644
Binary files a/priv/static/static/js/25.365514e44606a895ab50.js and b/priv/static/static/js/25.5a9efe20e3ae1352e6d2.js differ
diff --git a/priv/static/static/js/25.5a9efe20e3ae1352e6d2.js.map b/priv/static/static/js/25.5a9efe20e3ae1352e6d2.js.map
new file mode 100644
index 000000000..a506e6fa8
Binary files /dev/null and b/priv/static/static/js/25.5a9efe20e3ae1352e6d2.js.map differ
diff --git a/priv/static/static/js/28.9eb3e783aeba24c84f0a.js.map b/priv/static/static/js/28.9eb3e783aeba24c84f0a.js.map
deleted file mode 100644
index 5d106cfb7..000000000
Binary files a/priv/static/static/js/28.9eb3e783aeba24c84f0a.js.map and /dev/null differ
diff --git a/priv/static/static/js/28.9eb3e783aeba24c84f0a.js b/priv/static/static/js/28.e0f9f164e0bfd890dc61.js
similarity index 87%
rename from priv/static/static/js/28.9eb3e783aeba24c84f0a.js
rename to priv/static/static/js/28.e0f9f164e0bfd890dc61.js
index 3766823cb..75ba6d69d 100644
Binary files a/priv/static/static/js/28.9eb3e783aeba24c84f0a.js and b/priv/static/static/js/28.e0f9f164e0bfd890dc61.js differ
diff --git a/priv/static/static/js/28.e0f9f164e0bfd890dc61.js.map b/priv/static/static/js/28.e0f9f164e0bfd890dc61.js.map
new file mode 100644
index 000000000..536ae2d7a
Binary files /dev/null and b/priv/static/static/js/28.e0f9f164e0bfd890dc61.js.map differ
diff --git a/priv/static/static/js/3.7d21accf4e5bd07e3ebf.js b/priv/static/static/js/3.7d21accf4e5bd07e3ebf.js
index 8a1ed4198..d98aadec2 100644
Binary files a/priv/static/static/js/3.7d21accf4e5bd07e3ebf.js and b/priv/static/static/js/3.7d21accf4e5bd07e3ebf.js differ
diff --git a/priv/static/static/js/3.7d21accf4e5bd07e3ebf.js.map b/priv/static/static/js/3.7d21accf4e5bd07e3ebf.js.map
index 041ba44ef..37826baac 100644
Binary files a/priv/static/static/js/3.7d21accf4e5bd07e3ebf.js.map and b/priv/static/static/js/3.7d21accf4e5bd07e3ebf.js.map differ
diff --git a/priv/static/static/js/30.a9377272337674f2dd05.js.map b/priv/static/static/js/30.a9377272337674f2dd05.js.map
deleted file mode 100644
index fb35db3d0..000000000
Binary files a/priv/static/static/js/30.a9377272337674f2dd05.js.map and /dev/null differ
diff --git a/priv/static/static/js/30.a9377272337674f2dd05.js b/priv/static/static/js/30.fce58be0b52ca3e32fa4.js
similarity index 93%
rename from priv/static/static/js/30.a9377272337674f2dd05.js
rename to priv/static/static/js/30.fce58be0b52ca3e32fa4.js
index bd6accce8..03a5d65f6 100644
Binary files a/priv/static/static/js/30.a9377272337674f2dd05.js and b/priv/static/static/js/30.fce58be0b52ca3e32fa4.js differ
diff --git a/priv/static/static/js/30.fce58be0b52ca3e32fa4.js.map b/priv/static/static/js/30.fce58be0b52ca3e32fa4.js.map
new file mode 100644
index 000000000..f7dc83701
Binary files /dev/null and b/priv/static/static/js/30.fce58be0b52ca3e32fa4.js.map differ
diff --git a/priv/static/static/js/8.5f48d6f0cbed548baf0f.js b/priv/static/static/js/8.636322a87bb10a1754f8.js
similarity index 84%
rename from priv/static/static/js/8.5f48d6f0cbed548baf0f.js
rename to priv/static/static/js/8.636322a87bb10a1754f8.js
index 2b8d4f509..6e635fb6a 100644
Binary files a/priv/static/static/js/8.5f48d6f0cbed548baf0f.js and b/priv/static/static/js/8.636322a87bb10a1754f8.js differ
diff --git a/priv/static/static/js/8.5f48d6f0cbed548baf0f.js.map b/priv/static/static/js/8.636322a87bb10a1754f8.js.map
similarity index 57%
rename from priv/static/static/js/8.5f48d6f0cbed548baf0f.js.map
rename to priv/static/static/js/8.636322a87bb10a1754f8.js.map
index b1730e83c..f074928a5 100644
Binary files a/priv/static/static/js/8.5f48d6f0cbed548baf0f.js.map and b/priv/static/static/js/8.636322a87bb10a1754f8.js.map differ
diff --git a/priv/static/static/js/9.a95fcd286ba2c9050c4d.js b/priv/static/static/js/9.6010dbcce7b4d7c05a18.js
similarity index 96%
rename from priv/static/static/js/9.a95fcd286ba2c9050c4d.js
rename to priv/static/static/js/9.6010dbcce7b4d7c05a18.js
index 773c638fd..fcad39a7e 100644
Binary files a/priv/static/static/js/9.a95fcd286ba2c9050c4d.js and b/priv/static/static/js/9.6010dbcce7b4d7c05a18.js differ
diff --git a/priv/static/static/js/9.a95fcd286ba2c9050c4d.js.map b/priv/static/static/js/9.6010dbcce7b4d7c05a18.js.map
similarity index 57%
rename from priv/static/static/js/9.a95fcd286ba2c9050c4d.js.map
rename to priv/static/static/js/9.6010dbcce7b4d7c05a18.js.map
index 721bcb907..e5e1cd823 100644
Binary files a/priv/static/static/js/9.a95fcd286ba2c9050c4d.js.map and b/priv/static/static/js/9.6010dbcce7b4d7c05a18.js.map differ
diff --git a/priv/static/static/js/app.154c25316542278028a6.js b/priv/static/static/js/app.154c25316542278028a6.js
deleted file mode 100644
index b52be573a..000000000
Binary files a/priv/static/static/js/app.154c25316542278028a6.js and /dev/null differ
diff --git a/priv/static/static/js/app.154c25316542278028a6.js.map b/priv/static/static/js/app.154c25316542278028a6.js.map
deleted file mode 100644
index 1bdb6dd70..000000000
Binary files a/priv/static/static/js/app.154c25316542278028a6.js.map and /dev/null differ
diff --git a/priv/static/static/js/app.55d173dc5e39519aa518.js b/priv/static/static/js/app.55d173dc5e39519aa518.js
new file mode 100644
index 000000000..d04ae3499
Binary files /dev/null and b/priv/static/static/js/app.55d173dc5e39519aa518.js differ
diff --git a/priv/static/static/js/app.55d173dc5e39519aa518.js.map b/priv/static/static/js/app.55d173dc5e39519aa518.js.map
new file mode 100644
index 000000000..600e97afa
Binary files /dev/null and b/priv/static/static/js/app.55d173dc5e39519aa518.js.map differ
diff --git a/priv/static/static/js/vendors~app.bc5812c087f5dbcb914d.js b/priv/static/static/js/vendors~app.90c4af83c1ae68f4cd95.js
similarity index 99%
rename from priv/static/static/js/vendors~app.bc5812c087f5dbcb914d.js
rename to priv/static/static/js/vendors~app.90c4af83c1ae68f4cd95.js
index d2f2c34da..879a3b312 100644
Binary files a/priv/static/static/js/vendors~app.bc5812c087f5dbcb914d.js and b/priv/static/static/js/vendors~app.90c4af83c1ae68f4cd95.js differ
diff --git a/priv/static/static/js/vendors~app.bc5812c087f5dbcb914d.js.map b/priv/static/static/js/vendors~app.90c4af83c1ae68f4cd95.js.map
similarity index 99%
rename from priv/static/static/js/vendors~app.bc5812c087f5dbcb914d.js.map
rename to priv/static/static/js/vendors~app.90c4af83c1ae68f4cd95.js.map
index b4efa6807..395f83b6b 100644
Binary files a/priv/static/static/js/vendors~app.bc5812c087f5dbcb914d.js.map and b/priv/static/static/js/vendors~app.90c4af83c1ae68f4cd95.js.map differ
diff --git a/priv/static/sw-pleroma.js b/priv/static/sw-pleroma.js
index ee1b38e86..54c6ed8f0 100644
Binary files a/priv/static/sw-pleroma.js and b/priv/static/sw-pleroma.js differ
diff --git a/priv/static/sw-pleroma.js.map b/priv/static/sw-pleroma.js.map
index 114741e96..cd5ea0ae6 100644
Binary files a/priv/static/sw-pleroma.js.map and b/priv/static/sw-pleroma.js.map differ
diff --git a/test/activity_expiration_test.exs b/test/activity_expiration_test.exs
deleted file mode 100644
index f86d79826..000000000
--- a/test/activity_expiration_test.exs
+++ /dev/null
@@ -1,55 +0,0 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
-# SPDX-License-Identifier: AGPL-3.0-only
-
-defmodule Pleroma.ActivityExpirationTest do
- use Pleroma.DataCase
- alias Pleroma.ActivityExpiration
- import Pleroma.Factory
-
- setup do: clear_config([ActivityExpiration, :enabled])
-
- test "finds activities due to be deleted only" do
- activity = insert(:note_activity)
-
- expiration_due =
- insert(:expiration_in_the_past, %{activity_id: activity.id}) |> Repo.preload(:activity)
-
- activity2 = insert(:note_activity)
- insert(:expiration_in_the_future, %{activity_id: activity2.id})
-
- expirations = ActivityExpiration.due_expirations()
-
- assert length(expirations) == 1
- assert hd(expirations) == expiration_due
- end
-
- test "denies expirations that don't live long enough" do
- activity = insert(:note_activity)
- now = NaiveDateTime.utc_now()
- assert {:error, _} = ActivityExpiration.create(activity, now)
- end
-
- test "deletes an expiration activity" do
- Pleroma.Config.put([ActivityExpiration, :enabled], true)
- activity = insert(:note_activity)
-
- naive_datetime =
- NaiveDateTime.add(
- NaiveDateTime.utc_now(),
- -:timer.minutes(2),
- :millisecond
- )
-
- expiration =
- insert(
- :expiration_in_the_past,
- %{activity_id: activity.id, scheduled_at: naive_datetime}
- )
-
- Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker.perform(%Oban.Job{})
-
- refute Pleroma.Repo.get(Pleroma.Activity, activity.id)
- refute Pleroma.Repo.get(Pleroma.ActivityExpiration, expiration.id)
- end
-end
diff --git a/test/activity_test.exs b/test/activity_test.exs
index 2a92327d1..ee6a99cc3 100644
--- a/test/activity_test.exs
+++ b/test/activity_test.exs
@@ -185,15 +185,6 @@ test "find all statuses for unauthenticated users when `limit_to_local_content`
end
end
- test "add an activity with an expiration" do
- activity = insert(:note_activity)
- insert(:expiration_in_the_future, %{activity_id: activity.id})
-
- Pleroma.ActivityExpiration
- |> where([a], a.activity_id == ^activity.id)
- |> Repo.one!()
- end
-
test "all_by_ids_with_object/1" do
%{id: id1} = insert(:note_activity)
%{id: id2} = insert(:note_activity)
diff --git a/test/fixtures/23211.atom b/test/fixtures/23211.atom
deleted file mode 100644
index d5d111baa..000000000
--- a/test/fixtures/23211.atom
+++ /dev/null
@@ -1,508 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-05-02T14:59:30+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:comment:2015260:2017-05-02T14:45:47+00:00
- Favorite
- lambadalambda favorited something by godemperorofdune: <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> It's because your instance decided to be trap! lol.</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T14:45:47+00:00
- 2017-05-02T14:45:47+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:pawoo.net,2017-05-02:objectId=7397439:objectType=Status
- New comment by godemperorofdune
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> It's because your instance decided to be trap! lol.</p>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=136e244b26cdf1e9
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.heldscal.la,2017-05-02:noticeId=2015221:objectType=note
- New note by lambadalambda
- Some script thinks I'm a mastodon server.<br /> <br /> [info] GET /api/v1/timelines/public<br /> [debug] Processing with Fallback.RedirectController.redirector/2<br /> Parameters: %{"limit" => "40", "path" => ["api", "v1", "timelines", "public"]}<br /> Pipelines: []
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-02T14:40:50+00:00
- 2017-05-02T14:40:50+00:00
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=136e244b26cdf1e9
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.heldscal.la,2017-05-02:noticeId=2014759:objectType=comment
- New comment by lambadalambda
- @<a href="https://mstdn.io/users/mattskala" class="h-card u-url p-nickname mention" title="Matthew Skala">mattskala</a> You and @<a href="https://mastodon.social/users/kevinmarks" class="h-card u-url p-nickname mention" title="Kevin Marks">kevinmarks</a> are not wrong, but my comment was a suggestion to users and admins: Don't use big instances, don't run big instances. Also, it's a secondary advice to devs: Don't add features that encourage big instances.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-02T14:11:54+00:00
- 2017-05-02T14:11:54+00:00
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=58e32e013ab6487d
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.heldscal.la,2017-05-02:noticeId=2014684:objectType=comment
- New comment by lambadalambda
- @<a href="https://mastodon.social/users/Ronkjeffries" class="h-card u-url p-nickname mention" title="Ron K Jeffries social">ronkjeffries</a> @<a href="https://xoxo.zone/users/KevinMarks" class="h-card u-url p-nickname mention" title="Kevin Marks ">kevinmarks</a> Usually people who run their own private instance just look at the timelines of other servers, follow a seed population and then go from there. This is of course hard on Mastodon, because it doesn't have a publicly visible timeline.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-02T14:07:00+00:00
- 2017-05-02T14:07:00+00:00
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=58e32e013ab6487d
-
-
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:comment:2014584:2017-05-02T14:05:32+00:00
- Favorite
- lambadalambda favorited something by mattskala: <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> It's reasonable to expect that instance sizes will obey a power-law distribution because that's what such things in nature nearly always do. If so, there'll necessarily be a few instances much larger than the others; even if most are small, the network both socially and technically has to be able to deal with the existence of the few large ones.</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T14:05:32+00:00
- 2017-05-02T14:05:32+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:mstdn.io,2017-05-02:objectId=1316931:objectType=Status
- New comment by mattskala
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> It's reasonable to expect that instance sizes will obey a power-law distribution because that's what such things in nature nearly always do. If so, there'll necessarily be a few instances much larger than the others; even if most are small, the network both socially and technically has to be able to deal with the existence of the few large ones.</p>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=58e32e013ab6487d
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:comment:2013568:2017-05-02T14:05:29+00:00
- Favorite
- lambadalambda favorited something by kevinmarks: <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> except instance populations will be power law distributed, and the problems for the tummlers are worse at scale</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T14:05:29+00:00
- 2017-05-02T14:05:29+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:xoxo.zone,2017-05-02:objectId=89478:objectType=Status
- New comment by kevinmarks
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> except instance populations will be power law distributed, and the problems for the tummlers are worse at scale</p>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=58e32e013ab6487d
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:comment:2014060:2017-05-02T13:34:32+00:00
- Favorite
- lambadalambda favorited something by gcarregues: <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> Oh purée ! Ma vie en images !</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T13:34:32+00:00
- 2017-05-02T13:34:32+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:mastodon.etalab.gouv.fr,2017-05-02:objectId=55287:objectType=Status
- New comment by gcarregues
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> Oh purée ! Ma vie en images !</p>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=2c27c27df8ec4dcc
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:note:2013573:2017-05-02T13:03:33+00:00
- Favorite
- lambadalambda favorited something by phildobangnz: also @<a href="https://sealion.club/user/579" class="h-card mention" title="Sim Bot">sim</a> reminder you are awesome; don't even trip- u kewler than Tutankhamen's cucumber, fam. Okay, good night.
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T13:03:33+00:00
- 2017-05-02T13:03:33+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:sealion.club,2017-05-02:noticeId=3060818:objectType=note
- New note by phildobangnz
- also @<a href="https://sealion.club/user/579" class="h-card mention" title="Sim Bot">sim</a> reminder you are awesome; don't even trip- u kewler than Tutankhamen's cucumber, fam. Okay, good night.
-
-
-
-
-
-
- https://sealion.club/conversation/1633267
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.heldscal.la,2017-05-02:noticeId=2013586:objectType=comment
- New comment by lambadalambda
- @<a href="https://xoxo.zone/users/KevinMarks" class="h-card u-url p-nickname mention" title="Kevin Marks ">kevinmarks</a> People can stay in their giant unmoderatable instances with meaningless public and federated timelines and experience constant federation drama if they want. I'll stay here with my 5 friends.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-02T12:54:59+00:00
- 2017-05-02T12:54:59+00:00
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=58e32e013ab6487d
-
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:note:2013486:2017-05-02T12:46:48+00:00
- Favorite
- lambadalambda favorited something by fortune: There once was a dentist named Stone<br /> Who saw all his patients alone.<br /> In a fit of depravity<br /> He filled the wrong cavity,<br /> And my, how his practice has grown!
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T12:46:48+00:00
- 2017-05-02T12:46:48+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.kawa-kun.com,2017-05-02:noticeId=1655658:objectType=note
- New note by fortune
- There once was a dentist named Stone<br /> Who saw all his patients alone.<br /> In a fit of depravity<br /> He filled the wrong cavity,<br /> And my, how his practice has grown!
-
-
-
-
-
-
- https://gs.kawa-kun.com/conversation/714072
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:note:2013365:2017-05-02T12:37:55+00:00
- Favorite
- lambadalambda favorited something by xj9: <p>> rollerblading to work</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T12:37:55+00:00
- 2017-05-02T12:37:55+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:sunshinegardens.org,2017-05-02:objectId=61020:objectType=Status
- New note by xj9
- <p>> rollerblading to work</p>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=5a0e98612f634218
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:comment:2013259:2017-05-02T12:29:03+00:00
- Favorite
- lambadalambda favorited something by cereal: @<a href="https://gs.smuglo.li/user/28250" class="h-card mention" title="Bricky">thatbrickster</a> @<a href="https://social.heldscal.la/user/23211" class="h-card mention" title="Constance Variable">lambadalambda</a> But why?
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T12:29:03+00:00
- 2017-05-02T12:29:03+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:sealion.club,2017-05-02:noticeId=3059985:objectType=comment
- New comment by cereal
- @<a href="https://gs.smuglo.li/user/28250" class="h-card mention" title="Bricky">thatbrickster</a> @<a href="https://social.heldscal.la/user/23211" class="h-card mention" title="Constance Variable">lambadalambda</a> But why?
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=2c27c27df8ec4dcc
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:comment:2013227:2017-05-02T12:24:27+00:00
- Favorite
- lambadalambda favorited something by thatbrickster: @<a href="https://social.heldscal.la/user/23211" class="h-card u-url p-nickname mention" title="Constance Variable">lambadalambda</a> install gentoo
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T12:24:27+00:00
- 2017-05-02T12:24:27+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:gs.smuglo.li,2017-05-02:noticeId=2144296:objectType=comment
- New comment by thatbrickster
- @<a href="https://social.heldscal.la/user/23211" class="h-card u-url p-nickname mention" title="Constance Variable">lambadalambda</a> install gentoo
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=2c27c27df8ec4dcc
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:comment:2013213:2017-05-02T12:22:53+00:00
- Favorite
- lambadalambda favorited something by dwmatiz: @<a href="https://social.heldscal.la/user/23211" class="h-card mention">lambadalambda</a> *unzips dick*
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T12:22:53+00:00
- 2017-05-02T12:22:53+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:sealion.club,2017-05-02:noticeId=3059800:objectType=comment
- New comment by dwmatiz
- @<a href="https://social.heldscal.la/user/23211" class="h-card mention">lambadalambda</a> *unzips dick*
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=2c27c27df8ec4dcc
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:comment:2013199:2017-05-02T12:22:03+00:00
- Favorite
- lambadalambda favorited something by shpuld: @<a href="https://social.heldscal.la/user/23211" class="h-card mention" title="Constance Variable">lambadalambda</a> get #<span class="tag"><a href="https://shitposter.club/tag/cofe" rel="tag">cofe</a></span>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T12:22:03+00:00
- 2017-05-02T12:22:03+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-02:noticeId=2783524:objectType=comment
- New comment by shpuld
- @<a href="https://social.heldscal.la/user/23211" class="h-card mention" title="Constance Variable">lambadalambda</a> get #<span class="tag"><a href="https://shitposter.club/tag/cofe" rel="tag">cofe</a></span>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=2c27c27df8ec4dcc
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.heldscal.la,2017-05-02:noticeId=2013185:objectType=note
- New note by lambadalambda
- What now? <a href="https://social.heldscal.la/file/e4822d95de677757ff50d49672a4046c83218b76c04a0ad5e5f1f0a9a9eb1a74.gif" title="https://social.heldscal.la/file/e4822d95de677757ff50d49672a4046c83218b76c04a0ad5e5f1f0a9a9eb1a74.gif" rel="nofollow external noreferrer" class="attachment" id="attachment-422572">https://social.heldscal.la/attachment/422572</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-02T12:21:04+00:00
- 2017-05-02T12:21:04+00:00
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=2c27c27df8ec4dcc
-
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:note:2012929:2017-05-02T12:01:25+00:00
- Favorite
- lambadalambda favorited something by drkmttr: <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> I checked out No Agenda because I saw you mention it several time. Sadly, I wasn't impressed. I'm all about varying perspectives but Adam and John basically just sound like resentful curmudgeons. It seems like their shtick is basically playing devil's advocate to everything to arouse some discontent. Just my two cents. 😉</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T12:01:25+00:00
- 2017-05-02T12:01:25+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:mstdn.io,2017-05-02:objectId=1310093:objectType=Status
- New note by drkmttr
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> I checked out No Agenda because I saw you mention it several time. Sadly, I wasn't impressed. I'm all about varying perspectives but Adam and John basically just sound like resentful curmudgeons. It seems like their shtick is basically playing devil's advocate to everything to arouse some discontent. Just my two cents. 😉</p>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=2f329b4eb20e83e2
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:comment:2012336:2017-05-02T11:06:42+00:00
- Favorite
- lambadalambda favorited something by clacke: @<a href="https://mastodon.org.uk/users/dick_turpin" class="h-card u-url p-nickname mention" title="dick_turpin">dickturpin</a> @<a href="http://quitter.se/user/113503" class="h-card u-url p-nickname mention" title="Luke">luke</a> Oh no, I miss being irritated by you, it helps me understand myself and others. Also it builds character. :-)<br /> <br /> So if this is not federation because you can't follow all of online mankind, what should we call it? Proto-federated? Pre-federated?<br /> <br /> The term has been used decades ago for just one Microsoft Active Directory domain cross-certifying the root of another, by mutual agreement. I don't see how it's any less relevant to opportunistic federation between open servers on an open internet.<br /> <br /> I'm not saying we should be satisfied, I'm just saying that "federate" is a useful word and to build a big system we need to start with a small one. And focus on the things we *can* change, like helping the OStatus network grow and making the tools more useful.<br /> <br /> Saying that the network's ideals have failed because other networks aren't joining is doing neither of that.
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T11:06:42+00:00
- 2017-05-02T11:06:42+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.heldscal.la,2017-05-02:noticeId=2012336:objectType=comment
- New comment by clacke
- @<a href="https://mastodon.org.uk/users/dick_turpin" class="h-card u-url p-nickname mention" title="dick_turpin">dickturpin</a> @<a href="http://quitter.se/user/113503" class="h-card u-url p-nickname mention" title="Luke">luke</a> Oh no, I miss being irritated by you, it helps me understand myself and others. Also it builds character. :-)<br /> <br /> So if this is not federation because you can't follow all of online mankind, what should we call it? Proto-federated? Pre-federated?<br /> <br /> The term has been used decades ago for just one Microsoft Active Directory domain cross-certifying the root of another, by mutual agreement. I don't see how it's any less relevant to opportunistic federation between open servers on an open internet.<br /> <br /> I'm not saying we should be satisfied, I'm just saying that "federate" is a useful word and to build a big system we need to start with a small one. And focus on the things we *can* change, like helping the OStatus network grow and making the tools more useful.<br /> <br /> Saying that the network's ideals have failed because other networks aren't joining is doing neither of that.
-
-
-
-
-
-
- https://s.wefamlee.be/conversation/16478
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:fave:23211:comment:2011332:2017-05-02T10:37:40+00:00
- Favorite
- lambadalambda favorited something by moonman: @<a href="https://social.heldscal.la/user/23211" class="h-card mention" title="Constance Variable">lambadalambda</a> <a href="https://www.youtube.com/watch?v=mKLizztikRk" title="https://www.youtube.com/watch?v=mKLizztikRk" class="attachment" rel="nofollow">https://www.youtube.com/watch?v=mKLizztikRk</a>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-02T10:37:40+00:00
- 2017-05-02T10:37:40+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-02:noticeId=2781833:objectType=comment
- New comment by moonman
- @<a href="https://social.heldscal.la/user/23211" class="h-card mention" title="Constance Variable">lambadalambda</a> <a href="https://www.youtube.com/watch?v=mKLizztikRk" title="https://www.youtube.com/watch?v=mKLizztikRk" class="attachment" rel="nofollow">https://www.youtube.com/watch?v=mKLizztikRk</a>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=11d8b8c27d9513ec
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.heldscal.la,2017-05-02:noticeId=2012145:objectType=comment
- New comment by lambadalambda
- @<a href="https://sealion.club/user/186" class="h-card u-url p-nickname mention" title="I'M CEREAL U GUISE">cereal</a> ? No, you don't even need the identity servers for federation.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-02T10:37:33+00:00
- 2017-05-02T10:37:33+00:00
-
-
-
- https://sealion.club/conversation/1629037
-
-
-
-
-
-
-
diff --git a/test/fixtures/cw_retweet.xml b/test/fixtures/cw_retweet.xml
deleted file mode 100644
index c99a569d7..000000000
--- a/test/fixtures/cw_retweet.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
- https://mastodon.social/users/lambadalambda.atom
- Critical Value
-
- 2017-04-16T21:47:25Z
- https://files.mastodon.social/accounts/avatars/000/000/264/original/1429214160519.gif
-
- https://mastodon.social/users/lambadalambda
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/lambadalambda
- lambadalambda
- lambadalambda@mastodon.social
-
-
-
- lambadalambda
- Critical Value
- public
-
-
-
-
-
-
- tag:mastodon.social,2017-05-11:objectId=5647963:objectType=Status
- 2017-05-11T10:23:15Z
- 2017-05-11T10:23:15Z
- lambadalambda shared a status by Skruyb@mamot.fr
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:mamot.fr,2017-05-10:objectId=1294943:objectType=Status
- 2017-05-10T17:31:44Z
- 2017-05-10T17:31:45Z
- New status by Skruyb@mamot.fr
-
- https://mamot.fr/users/Skruyb
- http://activitystrea.ms/schema/1.0/person
- https://mamot.fr/users/Skruyb
- Skruyb
- Skruyb@mamot.fr
- <p>Fr and En.<br>Posts will disappear on a regular basis.</p>
-
-
-
- Skruyb
- The 7th Son
- Fr and En.Posts will disappear on a regular basis.
- public
-
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- Hey.
- <p><span class="h-card"><a href="https://mastodon.social/@lambadalambda">@<span>lambadalambda</span></a></span></p><p>Hey!!!</p>
-
-
- public
-
-
-
- <p><span class="h-card"><a href="https://mastodon.social/@lambadalambda">@<span>lambadalambda</span></a></span></p><p>Hey!!!</p>
-
- public
-
-
-
-
diff --git a/test/fixtures/delete.xml b/test/fixtures/delete.xml
deleted file mode 100644
index 731e1c204..000000000
--- a/test/fixtures/delete.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
- https://mastodon.sdf.org/users/snowdusk.atom
- snowdusk
- Amateur live performance DJ/radio DJ on SDF's underground Internet radio http://aNONradio.net (LIVE Sat Sun Mon Tue 23:00-24:00 UTC) - http://snowdusk.sdf.org
- 2017-06-17T04:14:34Z
- https://mastodon.sdf.org/system/accounts/avatars/000/000/002/original/405a7652d5f60449.jpg?1497672873
-
- https://mastodon.sdf.org/users/snowdusk
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.sdf.org/users/snowdusk
- snowdusk
- snowdusk@mastodon.sdf.org
- <p>Amateur live performance DJ/radio DJ on SDF's underground Internet radio <a href="http://anonradio.net/" rel="nofollow noopener" target="_blank"><span class="invisible">http://</span><span class="">anonradio.net/</span><span class="invisible"></span></a> (LIVE Sat Sun Mon Tue 23:00-24:00 UTC) - <a href="http://snowdusk.sdf.org/" rel="nofollow noopener" target="_blank"><span class="invisible">http://</span><span class="">snowdusk.sdf.org/</span><span class="invisible"></span></a></p>
-
-
-
- snowdusk
- snowdusk
- Amateur live performance DJ/radio DJ on SDF's underground Internet radio http://aNONradio.net (LIVE Sat Sun Mon Tue 23:00-24:00 UTC) - http://snowdusk.sdf.org
- public
-
-
-
-
-
-
-
- tag:mastodon.sdf.org,2017-06-10:objectId=310513:objectType=Status
- 2017-06-10T22:02:31Z
- 2017-06-10T22:02:31Z
- snowdusk deleted status
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/delete
- Deleted status
-
-
-
-
diff --git a/test/fixtures/dm.xml b/test/fixtures/dm.xml
deleted file mode 100644
index d0b8aa811..000000000
--- a/test/fixtures/dm.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- tag:mastodon.social,2017-06-30:objectId=11260427:objectType=Status
- 2017-06-30T13:27:47Z
- 2017-06-30T13:27:47Z
- New status by lambadalambda
-
- https://mastodon.social/users/lambadalambda
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/lambadalambda
- lambadalambda
- lambadalambda@mastodon.social
-
-
- lambadalambda
- Critical Value
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> Hey.</p>
-
- direct
-
-
-
-
diff --git a/test/fixtures/favorite.xml b/test/fixtures/favorite.xml
deleted file mode 100644
index c32b4a403..000000000
--- a/test/fixtures/favorite.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-05-05T09:12:53+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061643:2017-05-05T09:12:50+00:00
- Favorite
- lambadalambda favorited something by moonman: @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> @<a href="https://gs.smuglo.li/user/2326" class="h-card mention" title="Dolus_McHonest">dolus</a> childhood poring over Strong's concordance and a koine Greek dictionary, fast forward to 2017 and some fuckstick who translates japanese jackoff material tells me you just need to make it sound right in English
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T09:12:50+00:00
- 2017-05-05T09:12:50+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment
- New comment by moonman
- @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> @<a href="https://gs.smuglo.li/user/2326" class="h-card mention" title="Dolus_McHonest">dolus</a> childhood poring over Strong's concordance and a koine Greek dictionary, fast forward to 2017 and some fuckstick who translates japanese jackoff material tells me you just need to make it sound right in English
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=55ead90125cd4bd4
-
-
-
-
-
-
diff --git a/test/fixtures/favorite_with_local_note.xml b/test/fixtures/favorite_with_local_note.xml
deleted file mode 100644
index 3c955607d..000000000
--- a/test/fixtures/favorite_with_local_note.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-05-05T09:12:53+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061643:2017-05-05T09:12:50+00:00
- Favorite
- lambadalambda favorited something by moonman: @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> @<a href="https://gs.smuglo.li/user/2326" class="h-card mention" title="Dolus_McHonest">dolus</a> childhood poring over Strong's concordance and a koine Greek dictionary, fast forward to 2017 and some fuckstick who translates japanese jackoff material tells me you just need to make it sound right in English
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T09:12:50+00:00
- 2017-05-05T09:12:50+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- localid
- New comment by moonman
- @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> @<a href="https://gs.smuglo.li/user/2326" class="h-card mention" title="Dolus_McHonest">dolus</a> childhood poring over Strong's concordance and a koine Greek dictionary, fast forward to 2017 and some fuckstick who translates japanese jackoff material tells me you just need to make it sound right in English
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=55ead90125cd4bd4
-
-
-
-
-
-
diff --git a/test/fixtures/follow.xml b/test/fixtures/follow.xml
deleted file mode 100644
index d4e89954b..000000000
--- a/test/fixtures/follow.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-05-07T09:54:49+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-07:subscription:23211:person:44803:2017-05-07T09:54:48+00:00
- Constance Variable (lambadalambda@social.heldscal.la)'s status on Sunday, 07-May-2017 09:54:49 UTC
- <a href="https://social.heldscal.la/lambadalambda">Constance Variable</a> started following <a href="https://pawoo.net/@pekorino">mono</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-05-07T09:54:49+00:00
- 2017-05-07T09:54:49+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://pawoo.net/users/pekorino
- mono
- http://shitposter.club/mono 孤独のグルメ
-
-
-
-
- pekorino
- mono
- http://shitposter.club/mono 孤独のグルメ
-
-
- tag:social.heldscal.la,2017-05-07:objectType=thread:nonce=6e80caf94e03029f
-
-
-
-
-
-
diff --git a/test/fixtures/incoming_note_activity.xml b/test/fixtures/incoming_note_activity.xml
deleted file mode 100644
index 21eda2d30..000000000
--- a/test/fixtures/incoming_note_activity.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-23:noticeId=29:objectType=note
- New note by lambda
- @<a href="http://pleroma.example.org:4000/users/lain3" class="h-card mention">lain3</a>
-
-
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-23T14:51:03+00:00
- 2017-04-23T14:51:03+00:00
-
- http://activitystrea.ms/schema/1.0/person
- http://gs.example.org:4040/index.php/user/1
- lambda
-
-
-
-
- lambda
- lambda
-
-
-
-
- tag:gs.example.org:4040,2017-04-23:objectType=thread:nonce=f09e22f58abd5c7b
-
-
-
-
-
-
-
diff --git a/test/fixtures/incoming_note_activity_answer.xml b/test/fixtures/incoming_note_activity_answer.xml
deleted file mode 100644
index b1244faa6..000000000
--- a/test/fixtures/incoming_note_activity_answer.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=55:objectType=note
- New note by lambda
- hey.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T18:16:13+00:00
- 2017-04-25T18:16:13+00:00
-
- http://activitystrea.ms/schema/1.0/person
- http://gs.example.org:4040/index.php/user/1
- lambda
-
-
-
-
- lambda
- lambda
-
-
-
-
-
-
- http://pleroma.example.org:4000/contexts/8f6f45d4-8e4d-4e1a-a2de-09f27367d2d0
-
-
-
-
-
-
-
diff --git a/test/fixtures/incoming_reply_mastodon.xml b/test/fixtures/incoming_reply_mastodon.xml
deleted file mode 100644
index 8ee1186cc..000000000
--- a/test/fixtures/incoming_reply_mastodon.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- tag:mastodon.social,2017-05-02:objectId=4901603:objectType=Status
- 2017-05-02T18:33:06Z
- 2017-05-02T18:33:06Z
- New status by lambadalambda
-
- https://mastodon.social/users/lambadalambda
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/lambadalambda
- lambadalambda
- lambadalambda@mastodon.social
-
-
-
- lambadalambda
- Critical Value
- public
-
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> hey</p>
-
-
- public
-
-
-
-
diff --git a/test/fixtures/incoming_websub_gnusocial_attachments.xml b/test/fixtures/incoming_websub_gnusocial_attachments.xml
deleted file mode 100644
index 9d331ef32..000000000
--- a/test/fixtures/incoming_websub_gnusocial_attachments.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-05-02T20:29:35+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.heldscal.la,2017-05-02:noticeId=2020923:objectType=note
- New note by lambadalambda
- Okay gonna stream some cool games!! <a href="https://social.heldscal.la/file/7ed5ee508e6376a6e3dd581e17e7ed0b7b638147c7e86784bf83abc2641ee3d4.gif" title="https://social.heldscal.la/file/7ed5ee508e6376a6e3dd581e17e7ed0b7b638147c7e86784bf83abc2641ee3d4.gif" rel="nofollow external noreferrer" class="attachment" id="attachment-423842">https://social.heldscal.la/attachment/423842</a> <a href="https://social.heldscal.la/file/4c209099cadfc5afd3e27a334aa0db96b3a7510dde1603305d68a2707e59a11f.png" title="https://social.heldscal.la/file/4c209099cadfc5afd3e27a334aa0db96b3a7510dde1603305d68a2707e59a11f.png" rel="nofollow external noreferrer" class="attachment" id="attachment-423843">https://social.heldscal.la/attachment/423843</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-02T20:29:35+00:00
- 2017-05-02T20:29:35+00:00
-
- tag:social.heldscal.la,2017-05-02:objectType=thread:nonce=26c7afdcbcf4ebd4
-
-
-
-
-
-
-
-
diff --git a/test/fixtures/lambadalambda.atom b/test/fixtures/lambadalambda.atom
deleted file mode 100644
index 964a416f7..000000000
--- a/test/fixtures/lambadalambda.atom
+++ /dev/null
@@ -1,479 +0,0 @@
-
-
- https://mastodon.social/users/lambadalambda.atom
- Critical Value
-
- 2017-04-16T21:47:25Z
- https://files.mastodon.social/accounts/avatars/000/000/264/original/1429214160519.gif?1492379244
-
- https://mastodon.social/users/lambadalambda
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/lambadalambda
- lambadalambda
- lambadalambda@mastodon.social
- a cool dude.
-
-
-
- lambadalambda
- Critical Value
- public
-
-
-
-
-
-
-
- tag:mastodon.social,2017-04-07:objectId=1874242:objectType=Status
- 2017-04-07T11:02:56Z
- 2017-04-07T11:02:56Z
- lambadalambda shared a status by 0xroy@social.wxcafe.net
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:social.wxcafe.net,2017-04-07:objectId=72554:objectType=Status
- 2017-04-07T11:01:59Z
- 2017-04-07T11:02:00Z
- New status by 0xroy@social.wxcafe.net
-
- https://social.wxcafe.net/users/0xroy
- http://activitystrea.ms/schema/1.0/person
- https://social.wxcafe.net/users/0xroy
- 0xroy
- 0xroy@social.wxcafe.net
- ta caution weeb | discussions privées : <a href="https://💌.0xroy.me" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="">💌.0xroy.me</span><span class="invisible"></span></a>
-
-
-
- 0xroy
- 「R O Y 🍵 B O S」
- ta caution weeb | discussions privées : <a href="https://%F0%9F%92%8C.0xroy.me" rel="nofollow noopener"><span class="invisible">https://</span><span class="">💌.0xroy.me</span><span class="invisible"></span></a>
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>someone pls eli5 matrix (protocol) and riot</p>
-
- public
-
-
- <p>someone pls eli5 matrix (protocol) and riot</p>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-06:objectId=1768247:objectType=Status
- 2017-04-06T11:10:19Z
- 2017-04-06T11:10:19Z
- lambadalambda shared a status by areyoutoo@mastodon.xyz
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:mastodon.xyz,2017-04-05:objectId=133327:objectType=Status
- 2017-04-05T17:36:41Z
- 2017-04-05T18:12:14Z
- New status by areyoutoo@mastodon.xyz
-
- https://mastodon.xyz/users/areyoutoo
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.xyz/users/areyoutoo
- areyoutoo
- areyoutoo@mastodon.xyz
- devops | retired gamedev | always boost puppy pics
-
-
-
- areyoutoo
- Raw Butter
- devops | retired gamedev | always boost puppy pics
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>Some UX thoughts for <a href="https://mastodon.xyz/tags/mastodev" class="mention hashtag">#<span>mastodev</span></a>:</p><p>- Would be nice if I could work on multiple draft toots? Clicking to reply to someone seems to erase any draft I had been working on.</p><p>- Kinda risky to click on the Federated Timeline if it loads new toots and scrolls 10ms before I click on something.</p><p>I probably don't know enough web frontend to help, but it might be fun to try.</p>
-
-
- public
-
-
- <p>Some UX thoughts for <a href="https://mastodon.xyz/tags/mastodev" class="mention hashtag">#<span>mastodev</span></a>:</p><p>- Would be nice if I could work on multiple draft toots? Clicking to reply to someone seems to erase any draft I had been working on.</p><p>- Kinda risky to click on the Federated Timeline if it loads new toots and scrolls 10ms before I click on something.</p><p>I probably don't know enough web frontend to help, but it might be fun to try.</p>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-06:objectId=1764509:objectType=Status
- 2017-04-06T10:15:38Z
- 2017-04-06T10:15:38Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- This is a test for cw federation
- <p>This is a test for cw federation body text.</p>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-05:objectId=1645208:objectType=Status
- 2017-04-05T07:14:53Z
- 2017-04-05T07:14:53Z
- lambadalambda shared a status by lambadalambda@social.heldscal.la
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:social.heldscal.la,2017-04-05:noticeId=1502088:objectType=note
- 2017-04-05T06:12:09Z
- 2017-04-05T07:12:47Z
- New status by lambadalambda@social.heldscal.la
-
- https://social.heldscal.la/user/23211
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- lambadalambda@social.heldscal.la
- Call me Deacon Blues.
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- Federation 101: <a href="https://www.youtube.com/watch?v=t1lYU5CA40o" rel="nofollow external noreferrer" class="attachment thumbnail">https://www.youtube.com/watch?v=t1lYU5CA40o</a>
-
- public
-
-
- Federation 101: <a href="https://www.youtube.com/watch?v=t1lYU5CA40o" rel="nofollow external noreferrer" class="attachment thumbnail">https://www.youtube.com/watch?v=t1lYU5CA40o</a>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-05:objectId=1641750:objectType=Status
- 2017-04-05T05:44:48Z
- 2017-04-05T05:44:48Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> just a test.</p>
-
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-04:objectId=1540149:objectType=Status
- 2017-04-04T06:31:09Z
- 2017-04-04T06:31:09Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>Looks like you still can't delete your account here (PRIVACY!), but I won't be posting here anymore, my main account is <span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span></p>
-
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-04:objectId=1539608:objectType=Status
- 2017-04-04T06:18:16Z
- 2017-04-04T06:18:16Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mastodon.social/@ghostbar" class="u-url mention">@<span>ghostbar</span></a></span> Remember to rewrite it in Rust once you're done.</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-04-03:objectId=1504813:objectType=Status
- 2017-04-03T18:01:20Z
- 2017-04-03T18:01:20Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mastodon.xyz/@Azurolu" class="u-url mention">@<span>Azurolu</span></a></span> You mean gs.smuglo.li?</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-04-03:objectId=1504805:objectType=Status
- 2017-04-03T18:01:05Z
- 2017-04-03T18:01:05Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>There's nothing wrong with having several alt accounts all across the fediverse. Try out another mastodon instance (<a href="https://icosahedron.website" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="">icosahedron.website</span><span class="invisible"></span></a>) or a GNU Social instance (like <a href="https://shitposter.club" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="">shitposter.club</span><span class="invisible"></span></a> or <a href="https://freezepeach.xyz" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="">freezepeach.xyz</span><span class="invisible"></span></a>), or friendica. They are all on the same network, so you can still follow all your friends!</p>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-03:objectId=1503965:objectType=Status
- 2017-04-03T17:31:30Z
- 2017-04-03T17:31:30Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mastodon.social/@20Hz" class="u-url mention">@<span>20Hz</span></a></span> you could also try out a GS instance, which are on the same network :)</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-04-03:objectId=1503955:objectType=Status
- 2017-04-03T17:31:08Z
- 2017-04-03T17:31:08Z
- lambadalambda shared a status by shpuld@shitposter.club
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:shitposter.club,2017-04-03:noticeId=2251717:objectType=note
- 2017-04-03T17:06:43Z
- 2017-04-03T17:12:06Z
- New status by shpuld@shitposter.club
-
- https://shitposter.club/user/5381
- http://activitystrea.ms/schema/1.0/person
- https://shitposter.club/user/5381
- shpuld
- shpuld@shitposter.club
-
-
-
-
- shpuld
- shp
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- reposting the classic <a href="https://shitposter.club/file/89c5fe483526caf3a46cfc5cdd4ae68061054350e767397731af658d54786e31.jpg" class="attachment" rel="nofollow external">https://shitposter.club/attachment/219846</a>
-
-
- public
-
-
- reposting the classic <a href="https://shitposter.club/file/89c5fe483526caf3a46cfc5cdd4ae68061054350e767397731af658d54786e31.jpg" class="attachment" rel="nofollow external">https://shitposter.club/attachment/219846</a>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-03:objectId=1503929:objectType=Status
- 2017-04-03T17:30:43Z
- 2017-04-03T17:30:43Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mastodon.social/@ghostbar" class="u-url mention">@<span>ghostbar</span></a></span> Normally you shouldn't be running tens of thousands of users on one instance... That's one of the reasons for federation.</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-04-03:objectId=1477255:objectType=Status
- 2017-04-03T08:24:39Z
- 2017-04-03T08:24:39Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mastodon.social/@dot_tiff" class="u-url mention">@<span>dot_tiff</span></a></span> it's the vaporwave mode.</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-04-03:objectId=1476210:objectType=Status
- 2017-04-03T07:45:42Z
- 2017-04-03T07:45:42Z
- lambadalambda shared a status by lambadalambda@social.heldscal.la
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:social.heldscal.la,2017-04-03:noticeId=1475727:objectType=note
- 2017-04-03T07:44:43Z
- 2017-04-03T07:44:48Z
- New status by lambadalambda@social.heldscal.la
-
- https://social.heldscal.la/user/23211
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- lambadalambda@social.heldscal.la
- Call me Deacon Blues.
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- Here's a song by the original anti-idol, Togawa Jun: <a href="https://www.youtube.com/watch?v=kNI_NK2YY-s" rel="nofollow external noreferrer" class="attachment">https://www.youtube.com/watch?v=kNI_NK2YY-s</a>
-
- public
-
-
- Here's a song by the original anti-idol, Togawa Jun: <a href="https://www.youtube.com/watch?v=kNI_NK2YY-s" rel="nofollow external noreferrer" class="attachment">https://www.youtube.com/watch?v=kNI_NK2YY-s</a>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-03:objectId=1476047:objectType=Status
- 2017-04-03T07:39:14Z
- 2017-04-03T07:39:14Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mastodon.social/@amrrr" class="u-url mention">@<span>amrrr</span></a></span> tumblr/10, but pretty good!</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-04-03:objectId=1475949:objectType=Status
- 2017-04-03T07:35:45Z
- 2017-04-03T07:35:45Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mastodon.social/@Shookaite" class="u-url mention">@<span>Shookaite</span></a></span> Oh, you mean like userstyles?</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-04-03:objectId=1475581:objectType=Status
- 2017-04-03T07:20:03Z
- 2017-04-03T07:20:03Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mastodon.social/@Shookaite" class="u-url mention">@<span>Shookaite</span></a></span> Would be nice if someone helped port Pleroma to Mastodon, that has a theme switcher (click on the cog in the upper right): <a href="https://pleroma.heldscal.la/main/all" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="">pleroma.heldscal.la/main/all</span><span class="invisible"></span></a></p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-04-02:objectId=1457325:objectType=Status
- 2017-04-02T21:57:43Z
- 2017-04-02T21:57:43Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mastodon.social/@rhosyn" class="u-url mention">@<span>rhosyn</span></a></span> <span class="h-card"><a href="https://mastodon.social/@Meaningness" class="u-url mention">@<span>Meaningness</span></a></span> you could take a look at those listed at social.guhnoo.org</p>
-
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-04-02:objectId=1447926:objectType=Status
- 2017-04-02T18:31:52Z
- 2017-04-02T18:31:52Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>My main account is <span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> , btw.</p>
-
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-02:objectId=1447878:objectType=Status
- 2017-04-02T18:30:37Z
- 2017-04-02T18:30:37Z
- lambadalambda shared a status by Firstaide@awoo.space
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:awoo.space,2017-04-02:objectId=135324:objectType=Status
- 2017-04-02T18:29:32Z
- 2017-04-02T18:29:32Z
- New status by Firstaide@awoo.space
-
- https://awoo.space/users/Firstaide
- http://activitystrea.ms/schema/1.0/person
- https://awoo.space/users/Firstaide
- Firstaide
- Firstaide@awoo.space
- A smol awoo account, for a smol autistic 💙
-They/them please!
-NB/white/ace
-
-
-
- Firstaide
- Miff🚑✨
- A smol awoo account, for a smol autistic 💙
-They/them please!
-NB/white/ace
- public
-
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><a href="https://mastodon.social/users/lambadalambda" class="h-card u-url p-nickname mention">@<span>lambadalambda</span></a> yeah, I think that's p much the big issue here? <br>When I first heard of Masto, I thought it was just like twitter at first, I had no idea federation was even a thing?, and I actually joined p early on? :-o </p><p>idk I think more stuff needs to be done about federation promotion, but honestly its gotta come from the get go when people get here to make an account I feel :-o</p>
-
-
- public
-
-
-
- <p><a href="https://mastodon.social/users/lambadalambda" class="h-card u-url p-nickname mention">@<span>lambadalambda</span></a> yeah, I think that's p much the big issue here? <br>When I first heard of Masto, I thought it was just like twitter at first, I had no idea federation was even a thing?, and I actually joined p early on? :-o </p><p>idk I think more stuff needs to be done about federation promotion, but honestly its gotta come from the get go when people get here to make an account I feel :-o</p>
-
- public
-
-
-
-
diff --git a/test/fixtures/mastodon-note-cw.xml b/test/fixtures/mastodon-note-cw.xml
deleted file mode 100644
index 02f49dd61..000000000
--- a/test/fixtures/mastodon-note-cw.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
- https://mastodon.social/users/lambadalambda.atom
- Critical Value
-
- 2017-04-16T21:47:25Z
- https://files.mastodon.social/accounts/avatars/000/000/264/original/1429214160519.gif
-
- https://mastodon.social/users/lambadalambda
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/lambadalambda
- lambadalambda
- lambadalambda@mastodon.social
-
-
-
- lambadalambda
- Critical Value
- public
-
-
-
-
-
-
- tag:mastodon.social,2017-05-10:objectId=5551985:objectType=Status
- 2017-05-10T12:21:36Z
- 2017-05-10T12:21:36Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- technologic
- <p>test</p>
-
- public
-
-
-
-
diff --git a/test/fixtures/mastodon-note-unlisted.xml b/test/fixtures/mastodon-note-unlisted.xml
deleted file mode 100644
index d21017b80..000000000
--- a/test/fixtures/mastodon-note-unlisted.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
- https://mastodon.social/users/lambadalambda.atom
- Critical Value
-
- 2017-04-16T21:47:25Z
- https://files.mastodon.social/accounts/avatars/000/000/264/original/1429214160519.gif
-
- https://mastodon.social/users/lambadalambda
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/lambadalambda
- lambadalambda
- lambadalambda@mastodon.social
-
-
-
- lambadalambda
- Critical Value
- public
-
-
-
-
-
-
- tag:mastodon.social,2017-05-10:objectId=5551985:objectType=Status
- 2017-05-10T12:21:36Z
- 2017-05-10T12:21:36Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- technologic
- <p>test</p>
- unlisted
-
-
-
-
diff --git a/test/fixtures/mastodon-problematic.xml b/test/fixtures/mastodon-problematic.xml
deleted file mode 100644
index a39e72759..000000000
--- a/test/fixtures/mastodon-problematic.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
- https://icosahedron.website/users/shel.atom
- shel🍖‼️
- Gay jackal dog, poet, future librarian.
-
-http://datapup.info
-avatar: @puppytube@twitter.com
- 2017-05-02T23:26:01Z
- https://icosahedron.website/system/accounts/avatars/000/001/207/original/b1e07b09ae1cc787.png?1493767561
-
- https://icosahedron.website/users/shel
- http://activitystrea.ms/schema/1.0/person
- https://icosahedron.website/users/shel
- shel
- shel@icosahedron.website
- <p>Gay jackal dog, poet, future librarian. </p><p><a href="http://datapup.info/" rel="nofollow noopener" target="_blank"><span class="invisible">http://</span><span class="">datapup.info/</span><span class="invisible"></span></a><br />avatar: @puppytube@twitter.com</p>
-
-
-
- shel
- shel🍖‼️
- Gay jackal dog, poet, future librarian.
-
-http://datapup.info
-avatar: @puppytube@twitter.com
- public
-
-
-
-
-
-
- tag:icosahedron.website,2017-05-10:objectId=1414013:objectType=Status
- 2017-05-10T17:16:24Z
- 2017-05-10T17:16:24Z
- shel shared a status by instance_names@cybre.space
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:cybre.space,2017-05-10:objectId=946671:objectType=Status
- 2017-05-10T17:15:51Z
- 2017-05-10T17:15:52Z
- New status by instance_names@cybre.space
-
- https://cybre.space/users/instance_names
- http://activitystrea.ms/schema/1.0/person
- https://cybre.space/users/instance_names
- instance_names
- instance_names@cybre.space
- <p>name ideas for your new mastodon instance. made by <span class="h-card"><a href="https://witches.town/@lycaon">@<span>lycaon</span></a></span> source available at <a href="https://github.com/LycaonIsAWolf/instance_names"><span class="invisible">https://</span><span class="ellipsis">github.com/LycaonIsAWolf/insta</span><span class="invisible">nce_names</span></a></p>
-
-
-
- instance_names
- instance names
- name ideas for your new mastodon instance. made by @lycaon source available at https://github.com/LycaonIsAWolf/instance_names
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>dildo.codes</p>
- unlisted
-
-
- <p>dildo.codes</p>
-
- public
-
-
-
-
diff --git a/test/fixtures/mastodon_conversation.xml b/test/fixtures/mastodon_conversation.xml
deleted file mode 100644
index 8faab2304..000000000
--- a/test/fixtures/mastodon_conversation.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
- tag:mastodon.social,2017-08-28:objectId=16402826:objectType=Status
- 2017-08-28T17:58:55Z
- 2017-08-28T17:58:55Z
- New status by lambadalambda
-
- https://mastodon.social/users/lambadalambda
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/lambadalambda
- lambadalambda
- lambadalambda@mastodon.social
-
-
-
- lambadalambda
- Critical Value
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>test. <a href="https://mastodon.social/media/XCp0OHGPON9kWZwhjaI" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.social/media/XCp0OHGP</span><span class="invisible">ON9kWZwhjaI</span></a></p>
-
-
- public
-
-
-
-
diff --git a/test/fixtures/nil_mention_entry.xml b/test/fixtures/nil_mention_entry.xml
deleted file mode 100644
index e13024cb3..000000000
--- a/test/fixtures/nil_mention_entry.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
- GNU social
- https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom
- atarifrosch timeline
- Updates from atarifrosch on social.stopwatchingus-heidelberg.de!
- https://social.stopwatchingus-heidelberg.de/avatar/18330-96-20150628163706.png
- 2017-08-24T11:36:49+02:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.stopwatchingus-heidelberg.de/user/18330
- atarifrosch
- Nerd, Pirat, Debian user, CAcert assurer, Geocacher, Freifunker. Autismus/Depression, agender. GnuPG Key-ID: 0xBCF81ADE
-
-
-
-
-
- atarifrosch
- Atari-Frosch
- Nerd, Pirat, Debian user, CAcert assurer, Geocacher, Freifunker. Autismus/Depression, agender. GnuPG Key-ID: 0xBCF81ADE
-
- Düsseldorf, NRW, Germany
-
-
- homepage
- https://www.atari-frosch.de/
- true
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978072:objectType=note
- New note by atarifrosch
- 2017-08-22 Bundesverfassungsgericht: Erfolgreiche Verfassungsbeschwerde gegen die Versagung vorläufiger Leistungen für Kosten der Unterkunft und Heizung – <a href="https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html" title="https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html" class="attachment" id="attachment-450768" rel="nofollow external">https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html</a> !<a href="http://quitter.se/group/2184/id" class="h-card group" title="HartzIV (hartziv)">hartziv</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-22T12:00:21+00:00
- 2017-08-22T12:00:21+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978072:objectType=thread:crc32=28a35f44
-
-
-
-
-
-
-
-
diff --git a/test/fixtures/ostatus_incoming_post.xml b/test/fixtures/ostatus_incoming_post.xml
deleted file mode 100644
index 7967e1b32..000000000
--- a/test/fixtures/ostatus_incoming_post.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-04-29T18:25:38+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.heldscal.la,2017-04-29:noticeId=1967725:objectType=note
- New note by lambadalambda
- Will it blend?
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-29T18:25:38+00:00
- 2017-04-29T18:25:38+00:00
-
- tag:social.heldscal.la,2017-04-29:objectType=thread:nonce=3f3a9dd83acc4e35
-
-
-
-
-
-
diff --git a/test/fixtures/ostatus_incoming_post_tag.xml b/test/fixtures/ostatus_incoming_post_tag.xml
deleted file mode 100644
index 0f99c4126..000000000
--- a/test/fixtures/ostatus_incoming_post_tag.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-04-29T18:25:38+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.heldscal.la,2017-04-29:noticeId=1967725:objectType=note
- New note by lambadalambda
- Will it blend?
-
-
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-29T18:25:38+00:00
- 2017-04-29T18:25:38+00:00
-
- tag:social.heldscal.la,2017-04-29:objectType=thread:nonce=3f3a9dd83acc4e35
-
-
-
-
-
-
diff --git a/test/fixtures/ostatus_incoming_reply.xml b/test/fixtures/ostatus_incoming_reply.xml
deleted file mode 100644
index 83a427a68..000000000
--- a/test/fixtures/ostatus_incoming_reply.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-04-30T09:30:32+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.heldscal.la,2017-04-30:noticeId=1978790:objectType=comment
- New comment by lambadalambda
- @<a href="https://gs.archae.me/user/4687" class="h-card u-url p-nickname mention" title="shpbot">shpbot</a> why not indeed.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-30T09:30:32+00:00
- 2017-04-30T09:30:32+00:00
-
-
-
- https://gs.archae.me/conversation/327120
-
-
-
-
-
-
-
diff --git a/test/fixtures/share-gs-local.xml b/test/fixtures/share-gs-local.xml
deleted file mode 100644
index 9d52eab7b..000000000
--- a/test/fixtures/share-gs-local.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-05-03T08:05:41+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-03:noticeId=2028428:objectType=note
- lambadalambda repeated a notice by lain
- RT @<a href="https://pleroma.soykaf.com/users/lain" class="h-card u-url p-nickname mention" title="Lain Iwakura">lain</a> Added returning the entries as xml... let's see if the mastodon hammering stops now.
-
- http://activitystrea.ms/schema/1.0/share
- 2017-05-03T08:05:41+00:00
- 2017-05-03T08:05:41+00:00
-
- http://activitystrea.ms/schema/1.0/activity
- LOCAL_ID
-
- Added returning the entries as xml... let's see if the mastodon hammering stops now.
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-03T08:04:44+00:00
- 2017-05-03T08:04:44+00:00
-
- http://activitystrea.ms/schema/1.0/person
- LOCAL_USER
- lain
- Test account
-
-
-
-
-
- lain
- Lain Iwakura
- Test account
-
-
-
- http://activitystrea.ms/schema/1.0/note
- https://pleroma.soykaf.com/objects/4c1bda26-902e-4525-9fcd-b9fd44925193
- New note by lain
- Added returning the entries as xml... let's see if the mastodon hammering stops now.
-
-
-
-
- https://pleroma.soykaf.com/contexts/ede39a2b-7cf3-4fa4-8ccd-cb97431bcc22
-
-
-
-
- https://pleroma.soykaf.com/contexts/ede39a2b-7cf3-4fa4-8ccd-cb97431bcc22
-
-
-
-
-
-
diff --git a/test/fixtures/share-gs.xml b/test/fixtures/share-gs.xml
deleted file mode 100644
index ab5e488bd..000000000
--- a/test/fixtures/share-gs.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-05-03T08:05:41+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-03:noticeId=2028428:objectType=note
- lambadalambda repeated a notice by lain
- RT @<a href="https://pleroma.soykaf.com/users/lain" class="h-card u-url p-nickname mention" title="Lain Iwakura">lain</a> Added returning the entries as xml... let's see if the mastodon hammering stops now.
-
- http://activitystrea.ms/schema/1.0/share
- 2017-05-03T08:05:41+00:00
- 2017-05-03T08:05:41+00:00
-
- http://activitystrea.ms/schema/1.0/activity
- https://pleroma.soykaf.com/objects/4c1bda26-902e-4525-9fcd-b9fd44925193
-
- Added returning the entries as xml... let's see if the mastodon hammering stops now.
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-03T08:04:44+00:00
- 2017-05-03T08:04:44+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://pleroma.soykaf.com/users/lain
- lain
- Test account
-
-
-
-
-
- lain
- Lain Iwakura
- Test account
-
-
-
- http://activitystrea.ms/schema/1.0/note
- https://pleroma.soykaf.com/objects/4c1bda26-902e-4525-9fcd-b9fd44925193
- New note by lain
- Added returning the entries as xml... let's see if the mastodon hammering stops now.
-
-
-
-
- https://pleroma.soykaf.com/contexts/ede39a2b-7cf3-4fa4-8ccd-cb97431bcc22
-
-
-
-
- https://pleroma.soykaf.com/contexts/ede39a2b-7cf3-4fa4-8ccd-cb97431bcc22
-
-
-
-
-
-
diff --git a/test/fixtures/share.xml b/test/fixtures/share.xml
deleted file mode 100644
index e07b88680..000000000
--- a/test/fixtures/share.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
- tag:mastodon.social,2017-05-03:objectId=4934452:objectType=Status
- 2017-05-03T08:21:09Z
- 2017-05-03T08:21:09Z
- lambadalambda shared a status by lain@pleroma.soykaf.com
-
- https://mastodon.social/users/lambadalambda
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/lambadalambda
- lambadalambda
- lambadalambda@mastodon.social
-
-
-
- lambadalambda
- Critical Value
- public
-
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- https://pleroma.soykaf.com/objects/4c1bda26-902e-4525-9fcd-b9fd44925193
- 2017-05-03T08:04:44Z
- 2017-05-03T08:05:52Z
- New status by lain@pleroma.soykaf.com
-
- https://pleroma.soykaf.com/users/lain
- http://activitystrea.ms/schema/1.0/person
- https://pleroma.soykaf.com/users/lain
- lain
- lain@pleroma.soykaf.com
- Test account
-
-
-
- lain
- Lain Iwakura
- Test account
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- Added returning the entries as xml... let's see if the mastodon hammering stops now.
-
- public
-
-
- Added returning the entries as xml... let's see if the mastodon hammering stops now.
-
- public
-
-
-
diff --git a/test/fixtures/tesla_mock/7369654.atom b/test/fixtures/tesla_mock/7369654.atom
deleted file mode 100644
index 74fd9ce6b..000000000
--- a/test/fixtures/tesla_mock/7369654.atom
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-22:noticeId=7369654:objectType=comment
- New comment by shpuld
- @<a href="https://testing.pleroma.lol/users/lain" class="h-card mention" title="Rael Electric Razor">lain</a> me far right
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-22T09:20:12+00:00
- 2018-02-22T09:20:12+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://shitposter.club/user/5381
- shpuld
-
-
-
-
-
- shpuld
- shp
-
-
-
-
-
-
- tag:shitposter.club,2018-02-22:objectType=thread:nonce=e5a7c72d60a9c0e4
-
-
-
-
-
-
-
diff --git a/test/fixtures/tesla_mock/atarifrosch_feed.xml b/test/fixtures/tesla_mock/atarifrosch_feed.xml
deleted file mode 100644
index e00df782e..000000000
--- a/test/fixtures/tesla_mock/atarifrosch_feed.xml
+++ /dev/null
@@ -1,473 +0,0 @@
-
-
- GNU social
- https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom
- atarifrosch-Zeitleiste
- Aktualisierungen von atarifrosch auf social.stopwatchingus-heidelberg.de!
- https://social.stopwatchingus-heidelberg.de/avatar/18330-96-20150628163706.png
- 2017-08-24T12:06:55+02:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.stopwatchingus-heidelberg.de/user/18330
- atarifrosch
- Nerd, Pirat, Debian user, CAcert assurer, Geocacher, Freifunker. Autismus/Depression, agender. GnuPG Key-ID: 0xBCF81ADE
-
-
-
-
-
- atarifrosch
- Atari-Frosch
- Nerd, Pirat, Debian user, CAcert assurer, Geocacher, Freifunker. Autismus/Depression, agender. GnuPG Key-ID: 0xBCF81ADE
-
- Düsseldorf, NRW, Germany
-
-
- homepage
- https://www.atari-frosch.de/
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-24:noticeId=978735:objectType=note
- atarifrosch repeated a notice by hoergen
- RT @<a href="https://social.hoergen.org/hoergen" class="h-card mention" title="hoergen">hoergen</a> Das falsche Bild der Tagesschau "Auffallend "erfolgreich" - Andrea Nahles und Manuela Schwesig" #<span class="tag"><a href="https://social.stopwatchingus-heidelberg.de/tag/geringverdiener" rel="tag">Geringverdiener</a></span> #<span class="tag"><a href="https://social.stopwatchingus-heidelberg.de/tag/mindestlohn" rel="tag">Mindestlohn</a></span> #<span class="tag"><a href="https://social.stopwatchingus-heidelberg.de/tag/mannxismus" rel="tag">mannxismus</a></span> #<span class="tag"><a href="https://social.stopwatchingus-heidelberg.de/tag/erwerbsminderungsrente" rel="tag">Erwerbsminderungsrente</a></span> #<span class="tag"><a href="https://social.stopwatchingus-heidelberg.de/tag/arbeitnehmerflexibilisierung" rel="tag">ArbeitnehmerFlexibilisierung</a></span> #<span class="tag"><a href="https://social.stopwatchingus-heidelberg.de/tag/altersarmut" rel="tag">AltersArmut</a></span> ..... <a href="http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html" title="http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html" class="attachment" id="attachment-450858" rel="nofollow external">http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html</a>
- https://social.stopwatchingus-heidelberg.de/notice/978735
- http://activitystrea.ms/schema/1.0/share
- 2017-08-24T09:18:25+00:00
- 2017-08-24T09:18:25+00:00
-
- http://activitystrea.ms/schema/1.0/activity
- tag:social.hoergen.org,2017-08-24:noticeId=222320:objectType=note
-
- Das falsche Bild der Tagesschau <br /> "Auffallend "erfolgreich" - Andrea Nahles und Manuela Schwesig" #<span class="tag"><a href="https://social.hoergen.org/tag/geringverdiener" rel="tag">Geringverdiener</a></span> #<span class="tag"><a href="https://social.hoergen.org/tag/mindestlohn" rel="tag">Mindestlohn</a></span> #<span class="tag"><a href="https://social.hoergen.org/tag/mannxismus" rel="tag">mannxismus</a></span> #<span class="tag"><a href="https://social.hoergen.org/tag/erwerbsminderungsrente" rel="tag">Erwerbsminderungsrente</a></span> #<span class="tag"><a href="https://social.hoergen.org/tag/arbeitnehmerflexibilisierung" rel="tag">ArbeitnehmerFlexibilisierung</a></span> #<span class="tag"><a href="https://social.hoergen.org/tag/altersarmut" rel="tag">AltersArmut</a></span> ..... <br /> <br /> <a href="http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html" title="http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html" rel="nofollow external noreferrer" class="attachment">http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html</a>
- https://social.hoergen.org/notice/222320
- http://activitystrea.ms/schema/1.0/post
- 2017-08-24T07:36:31+00:00
- 2017-08-24T07:36:31+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.hoergen.org/user/2
- hoergen
- aka Andi Memyself #humanist #nerd Menschen liebhabender Misanthrop und auch sonst sehr vielseitig interessiert.
-
-
-
-
-
- hoergen
- hoergen
- aka Andi Memyself #humanist #nerd Menschen liebhabender Misanthrop und auch sonst sehr vielseitig interessiert.
-
- Berlin
-
-
- homepage
- https://hyperblog.de/hoergen/
- true
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.hoergen.org,2017-08-24:noticeId=222320:objectType=note
- New note by hoergen
- Das falsche Bild der Tagesschau <br /> "Auffallend "erfolgreich" - Andrea Nahles und Manuela Schwesig" #<span class="tag"><a href="https://social.hoergen.org/tag/geringverdiener" rel="tag">Geringverdiener</a></span> #<span class="tag"><a href="https://social.hoergen.org/tag/mindestlohn" rel="tag">Mindestlohn</a></span> #<span class="tag"><a href="https://social.hoergen.org/tag/mannxismus" rel="tag">mannxismus</a></span> #<span class="tag"><a href="https://social.hoergen.org/tag/erwerbsminderungsrente" rel="tag">Erwerbsminderungsrente</a></span> #<span class="tag"><a href="https://social.hoergen.org/tag/arbeitnehmerflexibilisierung" rel="tag">ArbeitnehmerFlexibilisierung</a></span> #<span class="tag"><a href="https://social.hoergen.org/tag/altersarmut" rel="tag">AltersArmut</a></span> ..... <br /> <br /> <a href="http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html" title="http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html" rel="nofollow external noreferrer" class="attachment">http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html</a>
-
-
-
-
- https://social.hoergen.org/conversation/98616
-
-
-
-
-
-
-
-
-
-
- https://social.hoergen.org/conversation/98616
-
-
-
-
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.stopwatchingus-heidelberg.de,2017-08-24:noticeId=978734:objectType=comment
- New comment by atarifrosch
- Jo, die Anzahl der Hartz-IV-Sanktionen nennt sie genausowenig wie die Anzahl der Menschen, die von den Repressionsbehörden in Obdachlosigkeit und Suizid getrieben wurden. Das würde die Erfolgszahlen dann doch ein wenig trüben, nech?
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-24T09:18:13+00:00
- 2017-08-24T09:18:13+00:00
-
-
-
- https://social.hoergen.org/conversation/98616
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-24:noticeId=978732:objectType=note
- New note by atarifrosch
- Moin-quak.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-24T09:09:39+00:00
- 2017-08-24T09:09:39+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-24:noticeId=978732:objectType=thread:crc32=2f92b7b6
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978594:objectType=note
- New note by atarifrosch
- n8-quak!
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-23T21:39:54+00:00
- 2017-08-23T21:39:54+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978594:objectType=thread:crc32=9bdb0ac9
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978503:objectType=note
- New note by atarifrosch
- 2017-08-16 Michal Špaček: Post a boarding pass on Facebook, get your account stolen – Post a boarding pass on Facebook, get your account stolen (gilt übrinx nicht nur für Facebook)
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-23T15:14:29+00:00
- 2017-08-23T15:14:29+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978503:objectType=thread:crc32=3de05c3a
-
-
-
-
-
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-23:fave:18330:activity:978458:2017-08-23T15:18:19+02:00
- Favorite
- atarifrosch favorited something by einebiene: Haha, große Überraschung. <a href="http://www.sueddeutsche.de/wirtschaft/abgasaffaere-software-updates-fuer-dieselautos-helfen-kaum-1.3637636" title="http://www.sueddeutsche.de/wirtschaft/abgasaffaere-software-updates-fuer-dieselautos-helfen-kaum-1.3637636" rel="nofollow noreferrer" class="attachment">https://quitter.is/url/1122672</a><br /> Was ich an all diesen Artikeln schade finde, ist, daß immer nur auf den Umstieg von Auto zu anderem Auto gesprochen wird. Öffis werden nicht erwähnt, Carsharing nicht, radeln nicht, und in der Stadt wäre ne Vespa auch deutlich besser als ein SUV.
- http://activitystrea.ms/schema/1.0/favorite
- 2017-08-23T13:18:19+00:00
- 2017-08-23T13:18:19+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:quitter.is,2017-08-23:noticeId=4032910:objectType=note
- New note by einebiene
- Haha, große Überraschung. <a href="http://www.sueddeutsche.de/wirtschaft/abgasaffaere-software-updates-fuer-dieselautos-helfen-kaum-1.3637636" title="http://www.sueddeutsche.de/wirtschaft/abgasaffaere-software-updates-fuer-dieselautos-helfen-kaum-1.3637636" rel="nofollow noreferrer" class="attachment">https://quitter.is/url/1122672</a><br /> Was ich an all diesen Artikeln schade finde, ist, daß immer nur auf den Umstieg von Auto zu anderem Auto gesprochen wird. Öffis werden nicht erwähnt, Carsharing nicht, radeln nicht, und in der Stadt wäre ne Vespa auch deutlich besser als ein SUV.
-
-
-
-
-
-
- https://quitter.is/conversation/2535246
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978402:objectType=note
- New note by atarifrosch
- moin-quak
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-23T10:57:26+00:00
- 2017-08-23T10:57:26+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978402:objectType=thread:crc32=7050c397
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978164:objectType=note
- New note by atarifrosch
- n8-quak
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-22T19:54:30+00:00
- 2017-08-22T19:54:30+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978164:objectType=thread:crc32=b0a209c7
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978072:objectType=note
- New note by atarifrosch
- 2017-08-22 Bundesverfassungsgericht: Erfolgreiche Verfassungsbeschwerde gegen die Versagung vorläufiger Leistungen für Kosten der Unterkunft und Heizung – <a href="https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html" title="https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html" class="attachment" id="attachment-450768" rel="nofollow external">https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html</a> !<a href="http://quitter.se/group/2184/id" class="h-card group" title="HartzIV (hartziv)">hartziv</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-22T12:00:21+00:00
- 2017-08-22T12:00:21+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978072:objectType=thread:crc32=28a35f44
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978042:objectType=note
- New note by atarifrosch
- moin-quak!
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-22T07:55:27+00:00
- 2017-08-22T07:55:27+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978042:objectType=thread:crc32=f070a9f7
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-21:noticeId=977914:objectType=note
- New note by atarifrosch
- So, morgen geht's weiter. n8-quak!
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-21T22:09:53+00:00
- 2017-08-21T22:09:53+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-21:noticeId=977914:objectType=thread:crc32=c0a9f7fa
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-21:noticeId=977710:objectType=note
- New note by atarifrosch
- moin-quak.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-21T08:58:26+00:00
- 2017-08-21T08:58:26+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-21:noticeId=977710:objectType=thread:crc32=60cfb466
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-20:noticeId=977526:objectType=note
- New note by atarifrosch
- Meine Augen meinen, für heute sei es genug. Nun denn. n8-quak.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-20T19:58:16+00:00
- 2017-08-20T19:58:16+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-20:noticeId=977526:objectType=thread:crc32=ce79634
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-20:noticeId=977369:objectType=note
- New note by atarifrosch
- [Blog] Im Netz aufgefischt #<span class="tag"><a href="https://social.stopwatchingus-heidelberg.de/tag/330" rel="tag">330</a></span> – <a href="https://blog.atari-frosch.de/2017/08/20/im-netz-aufgefischt-330/" title="https://blog.atari-frosch.de/2017/08/20/im-netz-aufgefischt-330/" class="attachment" id="attachment-450668" rel="nofollow external">https://blog.atari-frosch.de/2017/08/20/im-netz-aufgefischt-330/</a> (was ich diese Woche so gelesen habe)
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-20T09:14:07+00:00
- 2017-08-20T09:14:07+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-20:noticeId=977369:objectType=thread:crc32=2f800b86
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=977268:objectType=note
- New note by atarifrosch
- Fast ständig husten müssen ist echt anstrengend … naja, n8-quak.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-19T21:59:20+00:00
- 2017-08-19T21:59:20+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=977268:objectType=thread:crc32=deda767a
-
-
-
-
-
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-19:fave:18330:activity:977146:2017-08-19T21:39:26+02:00
- Favorite
- atarifrosch favorited something by einebienezwo: Ich mach gerade Kompetenztraining.<br /> Ich trainiere die Kompetenz, eine halb aufgegessene Gummibärchentüte nicht ganz aufzuessen.
- http://activitystrea.ms/schema/1.0/favorite
- 2017-08-19T19:39:26+00:00
- 2017-08-19T19:39:26+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:gnusocial.de,2017-08-19:noticeId=11011264:objectType=note
- New note by einebienezwo
- Ich mach gerade Kompetenztraining.<br /> Ich trainiere die Kompetenz, eine halb aufgegessene Gummibärchentüte nicht ganz aufzuessen.
-
-
-
-
-
-
- https://gnusocial.de/conversation/9363945
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=977242:objectType=comment
- New comment by atarifrosch
- Wir hatten hier schon Ordnungsdienst auf'm Radweg. Fotografisch dokumentiert (nicht von mir, Bekannter hatte es gesehen). Da hatte grad 'ne Pizzeria neu eröffnet …
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-19T19:38:53+00:00
- 2017-08-19T19:38:53+00:00
-
-
-
- https://gnusocial.de/conversation/9363813
-
-
-
-
-
-
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-19:fave:18330:activity:977180:2017-08-19T21:37:36+02:00
- Favorite
- atarifrosch favorited something by jcaktiv: BTW Hallo zusammen <3, wo ich schon mal wieder hier bin
- http://activitystrea.ms/schema/1.0/favorite
- 2017-08-19T19:37:36+00:00
- 2017-08-19T19:37:36+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:quitter.se,2017-08-19:noticeId=17372467:objectType=note
- New note by jcaktiv
- BTW Hallo zusammen <3, wo ich schon mal wieder hier bin
-
-
-
-
-
-
- tag:quitter.se,2017-08-19:objectType=thread:nonce=46c1c433d88aaa9f
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=976985:objectType=comment
- New comment by atarifrosch
- Jo, oder einfach mal nachfragen, so als Realitätsabgleich.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-19T10:34:50+00:00
- 2017-08-19T10:34:50+00:00
-
-
-
- https://gnusocial.de/conversation/9362516
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=976983:objectType=note
- New note by atarifrosch
- Schöne Alternative zu mit Werbung überladenen kommerziellen Anbietern: <a href="http://ifconfig.at/" title="http://ifconfig.at/" class="attachment" id="attachment-450636" rel="nofollow external">http://ifconfig.at/</a> – eigene IP, Hostname etc. abfragen, mit curl dann auch in Textform zur lokalen Weiterverarbeitung in Scripten etc. Leider (noch?) kein https.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-08-19T10:33:04+00:00
- 2017-08-19T10:33:04+00:00
-
- tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=976983:objectType=thread:crc32=4a3593c0
-
-
-
-
-
-
diff --git a/test/fixtures/tesla_mock/emelie.atom b/test/fixtures/tesla_mock/emelie.atom
deleted file mode 100644
index ddaa1c6ca..000000000
--- a/test/fixtures/tesla_mock/emelie.atom
+++ /dev/null
@@ -1,306 +0,0 @@
-
-
- https://mastodon.social/users/emelie.atom
- emelie 🎨
- 23 / #Sweden / #Artist / #Equestrian / #GameDev
-
-If I ain't spending time with my pets, I'm probably drawing. 🐴 🐱 🐰
- 2019-02-04T20:22:19Z
- https://files.mastodon.social/accounts/avatars/000/015/657/original/e7163f98280da1a4.png
-
- https://mastodon.social/users/emelie
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/emelie
- emelie
- emelie@mastodon.social
- <p>23 / <a href="https://mastodon.social/tags/sweden" class="mention hashtag" rel="tag">#<span>Sweden</span></a> / <a href="https://mastodon.social/tags/artist" class="mention hashtag" rel="tag">#<span>Artist</span></a> / <a href="https://mastodon.social/tags/equestrian" class="mention hashtag" rel="tag">#<span>Equestrian</span></a> / <a href="https://mastodon.social/tags/gamedev" class="mention hashtag" rel="tag">#<span>GameDev</span></a></p><p>If I ain't spending time with my pets, I'm probably drawing. 🐴 🐱 🐰</p>
-
-
-
- emelie
- emelie 🎨
- 23 / #Sweden / #Artist / #Equestrian / #GameDev
-
-If I ain't spending time with my pets, I'm probably drawing. 🐴 🐱 🐰
- public
-
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101850331907006641
- 2019-04-01T09:58:50Z
- 2019-04-01T09:58:50Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>Me: I'm going to make this vital change to my world building in the morning, no way I'll forget this, it's too big of a deal<br />Also me: forgets</p>
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101849626603073336
- 2019-04-01T06:59:28Z
- 2019-04-01T06:59:28Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
-
- <p><span class="h-card"><a href="https://mastodon.social/@Fergant" class="u-url mention">@<span>Fergant</span></a></span> Dom är i stort sett religiös skrift vid det här laget 👏👏</p><p>har dock bara läst svenska översättningen, kanske är dags att jag läser dom på engelska</p>
-
-
- public
-
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101849580030237068
- 2019-04-01T06:47:37Z
- 2019-04-01T06:47:37Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>What's you people's favourite fantasy books? Give me some hot tips 🌞</p>
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101849550599949363
- 2019-04-01T06:40:08Z
- 2019-04-01T06:40:08Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>Stick them legs out 💃 <a href="https://mastodon.social/tags/mastocats" class="mention hashtag" rel="tag">#<span>mastocats</span></a></p>
-
-
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101849191533152720
- 2019-04-01T05:08:49Z
- 2019-04-01T05:08:49Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>long 🐱 <a href="https://mastodon.social/tags/mastocats" class="mention hashtag" rel="tag">#<span>mastocats</span></a></p>
-
-
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101849165031453009
- 2019-04-01T05:02:05Z
- 2019-04-01T05:02:05Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>You gotta take whatever bellyrubbing opportunity you can get before she changes her mind 🦁 <a href="https://mastodon.social/tags/mastocats" class="mention hashtag" rel="tag">#<span>mastocats</span></a></p>
-
-
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101846512530748693
- 2019-03-31T17:47:31Z
- 2019-03-31T17:47:31Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>Hello look at this boy having a decent haircut for once <a href="https://mastodon.social/tags/mastohorses" class="mention hashtag" rel="tag">#<span>mastohorses</span></a> <a href="https://mastodon.social/tags/equestrian" class="mention hashtag" rel="tag">#<span>equestrian</span></a></p>
-
-
-
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101846181093805500
- 2019-03-31T16:23:14Z
- 2019-03-31T16:23:14Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>Sorry did I disturb the who-is-the-longest-cat competition ? <a href="https://mastodon.social/tags/mastocats" class="mention hashtag" rel="tag">#<span>mastocats</span></a></p>
-
-
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101845897513133849
- 2019-03-31T15:11:07Z
- 2019-03-31T15:11:07Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- more earthsea ramblings
- <p>I'm re-watching Tales from Earthsea for the first time since I read the books, and that Therru doesn't squash Cob like a spider, as Orm Embar did is a wasted opportunity tbh</p>
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101841219051533307
- 2019-03-30T19:21:19Z
- 2019-03-30T19:21:19Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>I gave my cats some mackerel and they ate it all in 0.3 seconds, and now they won't stop meowing for more, and I'm tired plz shut up</p>
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101839949762341381
- 2019-03-30T13:58:31Z
- 2019-03-30T13:58:31Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
-
- <p>yet I'm confused about this american dude with a gun, like the heck r ya doin in mah ghibli</p>
-
- public
-
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101839928677863590
- 2019-03-30T13:53:09Z
- 2019-03-30T13:53:09Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>2 hours into Ni no Kuni 2 and I've already sold my soul to this game</p>
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101836329521599438
- 2019-03-29T22:37:51Z
- 2019-03-29T22:37:51Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>Pippi Longstocking the original one-punch /man</p>
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101835905282948341
- 2019-03-29T20:49:57Z
- 2019-03-29T20:49:57Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>I've had so much wine I thought I had a 3rd brother</p>
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101835878059204660
- 2019-03-29T20:43:02Z
- 2019-03-29T20:43:02Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
-
- <p>ååååhhh booi</p>
-
- public
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101835848050598939
- 2019-03-29T20:35:24Z
- 2019-03-29T20:35:24Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
-
- <p><span class="h-card"><a href="https://thraeryn.net/@thraeryn" class="u-url mention">@<span>thraeryn</span></a></span> if I spent 1 hour and a half watching this monstrosity, I need to</p>
-
-
- public
-
-
-
-
-
-
- https://mastodon.social/users/emelie/statuses/101835823138262290
- 2019-03-29T20:29:04Z
- 2019-03-29T20:29:04Z
- New status by emelie
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
-
- medical, fluids mention
- <p><span class="h-card"><a href="https://icosahedron.website/@Trev" class="u-url mention">@<span>Trev</span></a></span> *hugs* ✨</p>
-
-
- public
-
-
-
-
-
-
diff --git a/test/fixtures/tesla_mock/http__gs.example.org_index.php_api_statuses_user_timeline_1.atom.xml b/test/fixtures/tesla_mock/http__gs.example.org_index.php_api_statuses_user_timeline_1.atom.xml
deleted file mode 100644
index 490467708..000000000
--- a/test/fixtures/tesla_mock/http__gs.example.org_index.php_api_statuses_user_timeline_1.atom.xml
+++ /dev/null
@@ -1,460 +0,0 @@
-
-
- GNU social
- http://gs.example.org/index.php/api/statuses/user_timeline/1.atom
- lambda timeline
- Updates from lambda on gs.example.org!
- http://gs.example.org/theme/neo-gnu/default-avatar-profile.png
- 2017-05-05T12:09:57+00:00
-
- http://activitystrea.ms/schema/1.0/person
- http://gs.example.org:4040/index.php/user/1
- lambda
-
-
-
-
- lambda
- lambda
-
-
-
-
-
-
-
-
-
-
-
-
- tag:gs.example.org,2017-05-04:noticeId=84:objectType=note
- lambda repeated a notice by lambda2
- RT @<a href="http://gs.example.org/index.php/user/7" class="h-card mention">lambda2</a> Hello!
-
- http://activitystrea.ms/schema/1.0/share
- 2017-05-04T16:38:50+00:00
- 2017-05-04T16:38:50+00:00
-
- http://activitystrea.ms/schema/1.0/activity
- tag:gs.example.org,2017-05-01:noticeId=67:objectType=note
-
- Hello!
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-01T08:41:04+00:00
- 2017-05-01T08:41:04+00:00
-
- http://activitystrea.ms/schema/1.0/person
- http://gs.example.org/index.php/user/7
- lambda2
-
-
-
-
-
- lambda2
- lambda2
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org,2017-05-01:noticeId=67:objectType=note
- New note by lambda2
- Hello!
-
-
-
-
- tag:gs.example.org,2017-05-01:objectType=thread:nonce=cffa792cb95fe417
-
-
-
-
-
-
- tag:gs.example.org,2017-05-01:objectType=thread:nonce=cffa792cb95fe417
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org,2017-04-30:noticeId=63:objectType=note
- New note by lambda
- what now?
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-30T10:09:57+00:00
- 2017-04-30T10:09:57+00:00
-
-
-
- tag:gs.example.org,2017-04-30:objectType=thread:nonce=1bbb60991ae9874b
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org,2017-04-30:noticeId=61:objectType=note
- New note by lambda
- @<a href="http://pleroma.example.org:4000/users/lain5" class="h-card mention">lain5</a> Hello!
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-30T10:07:26+00:00
- 2017-04-30T10:07:26+00:00
-
- tag:gs.example.org,2017-04-30:objectType=thread:nonce=1bbb60991ae9874b
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org,2017-04-29:noticeId=59:objectType=note
- New note by lambda
- ey
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-29T17:04:59+00:00
- 2017-04-29T17:04:59+00:00
-
- tag:gs.example.org,2017-04-29:objectType=thread:nonce=4cc42c2c61a0f4bd
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org,2017-04-29:noticeId=58:objectType=note
- New note by lambda
- Another one.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-29T17:02:47+00:00
- 2017-04-29T17:02:47+00:00
-
- tag:gs.example.org,2017-04-29:objectType=thread:nonce=53e9b8f1d6d38d13
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org,2017-04-29:noticeId=57:objectType=note
- New note by lambda
- Let's see if this comes over.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-29T17:01:39+00:00
- 2017-04-29T17:01:39+00:00
-
- tag:gs.example.org,2017-04-29:objectType=thread:nonce=238a7bd3ffc7c9cc
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org,2017-04-29:noticeId=56:objectType=note
- New note by lambda
- @<a href="http://pleroma.example.org:4000/users/lain5" class="h-card mention">lain5</a> Hey!
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-29T16:38:13+00:00
- 2017-04-29T16:38:13+00:00
-
- tag:gs.example.org,2017-04-29:objectType=thread:nonce=2629d3a398171b0f
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=55:objectType=note
- New note by lambda
- hey.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T18:16:13+00:00
- 2017-04-25T18:16:13+00:00
-
-
-
- http://pleroma.example.org:4000/contexts/8f6f45d4-8e4d-4e1a-a2de-09f27367d2d0
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=53:objectType=note
- New note by lambda
- and this?
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T18:14:34+00:00
- 2017-04-25T18:14:34+00:00
-
-
-
- http://pleroma.example.org:4000/contexts/24779b0e-91ad-487e-81bd-6cf5bb437b09
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=52:objectType=note
- New note by lambda
- yeah it does :)
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T18:13:31+00:00
- 2017-04-25T18:13:31+00:00
-
-
-
- tag:gs.example.org:4040,2017-04-25:objectType=thread:nonce=e0dc24b1a93ab6b3
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=50:objectType=note
- New note by lambda
- @<a href="http://pleroma.example.org:4000/users/lain5" class="h-card mention">lain5</a> Let's try with one that originates here!
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T18:10:28+00:00
- 2017-04-25T18:10:28+00:00
-
- tag:gs.example.org:4040,2017-04-25:objectType=thread:nonce=e0dc24b1a93ab6b3
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=48:objectType=note
- New note by lambda
- works?
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T18:08:44+00:00
- 2017-04-25T18:08:44+00:00
-
-
-
- http://pleroma.example.org:4000/contexts/24779b0e-91ad-487e-81bd-6cf5bb437b09
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=46:objectType=note
- New note by lambda
- Let's send you an answer.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T18:05:31+00:00
- 2017-04-25T18:05:31+00:00
-
-
-
- tag:gs.example.org:4040,2017-04-25:objectType=thread:nonce=73c7bcf6658f7ce3
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=44:objectType=note
- New note by lambda
- Hey.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T18:01:09+00:00
- 2017-04-25T18:01:09+00:00
-
-
-
- tag:gs.example.org:4040,2017-04-25:objectType=thread:nonce=6e7c8fc2823380b4
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=43:objectType=note
- New note by lambda
- What's coming to you?
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T17:58:41+00:00
- 2017-04-25T17:58:41+00:00
-
-
-
- tag:gs.example.org:4040,2017-04-25:objectType=thread:nonce=6e7c8fc2823380b4
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=42:objectType=note
- New note by lambda
- Now this is podracing.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T17:57:40+00:00
- 2017-04-25T17:57:40+00:00
-
-
-
- tag:gs.example.org:4040,2017-04-25:objectType=thread:nonce=6e7c8fc2823380b4
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=39:objectType=note
- New note by lambda
- Sure looks like it!
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T17:48:27+00:00
- 2017-04-25T17:48:27+00:00
-
-
-
- tag:gs.example.org:4040,2017-04-25:objectType=thread:nonce=4c6114a75bb4cea5
-
-
-
-
-
-
-
- tag:gs.example.org:4040,2017-04-25:subscription:1:person:6:2017-04-25T17:47:47+00:00
- lambda (lambda)'s status on Tuesday, 25-Apr-2017 17:47:47 UTC
- <a href="http://gs.example.org:4040/index.php/lambda">lambda</a> started following <a href="http://pleroma.example.org:4000/users/lain5">l</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-04-25T17:47:47+00:00
- 2017-04-25T17:47:47+00:00
-
- http://activitystrea.ms/schema/1.0/person
- http://pleroma.example.org:4000/users/lain5
- l
- lambadalambda
-
-
-
-
-
- lain5
- l
- lambadalambda
-
-
- tag:gs.example.org:4040,2017-04-25:objectType=thread:nonce=119acad17515314c
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=36:objectType=note
- New note by lambda
- @<a href="http://pleroma.example.org:4000/users/lain5" class="h-card mention">lain5</a> Hey, how are you?
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T17:46:22+00:00
- 2017-04-25T17:46:22+00:00
-
- tag:gs.example.org:4040,2017-04-25:objectType=thread:nonce=9c5ec19a18191372
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.example.org:4040,2017-04-25:noticeId=35:objectType=note
- New note by lambda
- @lain5@pleroma.example.org does this not work?
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-25T17:42:31+00:00
- 2017-04-25T17:42:31+00:00
-
- tag:gs.example.org:4040,2017-04-25:objectType=thread:nonce=fc841d7f52caa363
-
-
-
-
-
-
diff --git a/test/fixtures/tesla_mock/https___mamot.fr_users_Skruyb.atom b/test/fixtures/tesla_mock/https___mamot.fr_users_Skruyb.atom
deleted file mode 100644
index b5f3d923b..000000000
--- a/test/fixtures/tesla_mock/https___mamot.fr_users_Skruyb.atom
+++ /dev/null
@@ -1,342 +0,0 @@
-
-
- https://mamot.fr/users/Skruyb.atom
- The 7th Son
- Fr and En.
-Posts will disappear on a regular basis.
- 2017-04-28T13:54:23Z
- https://mamot.fr/system/accounts/avatars/000/026/213/original/d95dbcfc76f77f4c.jpg?1493230984
-
- https://mamot.fr/users/Skruyb
- http://activitystrea.ms/schema/1.0/person
- https://mamot.fr/users/Skruyb
- Skruyb
- Skruyb@mamot.fr
- <p>Fr and En.<br />Posts will disappear on a regular basis.</p>
-
-
-
- Skruyb
- The 7th Son
- Fr and En.
-Posts will disappear on a regular basis.
- public
-
-
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1299665:objectType=Status
- 2017-05-10T20:06:59Z
- 2017-05-10T20:06:59Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://pouets.ovh/@noName" class="u-url mention">@<span>noName</span></a></span></p><p>Pour comparer faut avoir tester... Ô wait!!! 😁</p>
-
-
- public
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1299185:objectType=Status
- 2017-05-10T19:52:14Z
- 2017-05-10T19:52:14Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://witches.town/@Dhveszak" class="u-url mention">@<span>Dhveszak</span></a></span></p><p>Toi!! Tu vises le ministère de la propagande avoue!!!!!!!</p>
-
-
- public
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1299019:objectType=Status
- 2017-05-10T19:47:19Z
- 2017-05-10T19:47:19Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>Facebook s'attaque aux sites internet "trompeurs"</p><p><a href="http://u.afp.com/4W4z" rel="nofollow noopener" target="_blank"><span class="invisible">http://</span><span class="">u.afp.com/4W4z</span><span class="invisible"></span></a></p><p>J'attends de voir que Facebook s'attaque à lui même... rien qu'à lire leurs conditions générales d'utilisation, le respect de la vie privée...</p><p>Charité bien ordonnée... Parfois l'égoïsme aurait du bon.</p>
-
- public
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1298889:objectType=Status
- 2017-05-10T19:43:18Z
- 2017-05-10T19:43:18Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://octodon.social/@Balise" class="u-url mention">@<span>Balise</span></a></span></p><p>Fait comme moi, annonce que tu fais dans le flou artistique et que seuls des esprits éclairés pourront en percevoir la beauté et apprécier. Globalement après ça, tout le monde trouve les photos cool :-p</p>
-
-
- public
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1298728:objectType=Status
- 2017-05-10T19:38:39Z
- 2017-05-10T19:38:39Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mastodon.social/@applecandy" class="u-url mention">@<span>applecandy</span></a></span></p><p>Lucky you!!!</p>
-
-
- public
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1298431:objectType=Status
- 2017-05-10T19:26:32Z
- 2017-05-10T19:26:32Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>Est-ce que je suis le seul qui lorsqu'il commence à compter les arbres sur le bord de la route n'arrive pas à s'arrêter de compter?</p>
-
- public
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1298224:objectType=Status
- 2017-05-10T19:18:17Z
- 2017-05-10T19:18:17Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>Ca y est j'ai une nouvelle passion. Mettre les bouchons qui trainent par terre dans le bons sens avec mon pied 🙌</p>
-
- public
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1297450:objectType=Status
- 2017-05-10T18:53:37Z
- 2017-05-10T18:53:37Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>Ok. On est capable d'envoyer des mecs dans l'espace, avoir des voitures autonomes, des trucs intelligents de partout mais pas tous les bâtiments accessibles aux personnes à mobilité réduite, les émissions sur le services publics avec une personne faisant la traduction pour les sourds et malentendants de manière systématique...</p><p>J'ai du louper un truc dans l'ordre des priorités Oo</p>
-
- public
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1297292:objectType=Status
- 2017-05-10T18:48:17Z
- 2017-05-10T18:48:17Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>J'ai comme envie de faire un truc mais je ne sais pas quoi mais pourtant c'est comme si je ressentais l'idée dans ma tête mais c'est pas clair...</p><p>Fuck!!! J'vais aller draguer Josiane à la compta ça va me changer les idées!!!</p>
-
- public
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1296598:objectType=Status
- 2017-05-10T18:25:11Z
- 2017-05-10T18:25:11Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mamot.fr/@Smeablog" class="u-url mention">@<span>Smeablog</span></a></span></p><p>Pas faux MDR!!!!</p>
-
-
- public
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1296571:objectType=Status
- 2017-05-10T18:24:13Z
- 2017-05-10T18:24:13Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mamot.fr/@Smeablog" class="u-url mention">@<span>Smeablog</span></a></span></p><p>Ca ne change pas la finalité malheureusement, ça ne m'ouvre pas ce à quoi je veux accéder 😭</p>
-
-
- public
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1296475:objectType=Status
- 2017-05-10T18:20:50Z
- 2017-05-10T18:20:50Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>Arrrgghhhhhhh!!!!</p><p>Quand t'es sur le point de cliquer sur un lien dans le fil public global et que BOOM ça se met à jour... J'ose même pas imaginer combien j'ai ouvert de pages web sans le vouloir!!!</p>
-
- public
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1296426:objectType=Status
- 2017-05-10T18:19:17Z
- 2017-05-10T18:19:17Z
- Skruyb shared a status by Isaluini@mastodon.social
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:mastodon.social,2017-05-10:objectId=5587049:objectType=Status
- 2017-05-10T18:18:59Z
- 2017-05-10T18:19:00Z
- New status by Isaluini@mastodon.social
-
- https://mastodon.social/users/Isaluini
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/Isaluini
- Isaluini
- Isaluini@mastodon.social
- <p>Adicciones: Escribir, diseñar, cine, café, humor negro, música y dibujar. | Jedi. Bueno, no. Algún día (?) | Gratitude.</p>
-
-
-
- Isaluini
- Isa
- Adicciones: Escribir, diseñar, cine, café, humor negro, música y dibujar. | Jedi. Bueno, no. Algún día (?) | Gratitude.
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>♫ <br><a href="https://www.youtube.com/watch?v=pT68FS3YbQ4"><span class="invisible">https://www.</span><span class="ellipsis">youtube.com/watch?v=pT68FS3YbQ</span><span class="invisible">4</span></a></p>
-
- public
-
-
- <p>♫ <br><a href="https://www.youtube.com/watch?v=pT68FS3YbQ4"><span class="invisible">https://www.</span><span class="ellipsis">youtube.com/watch?v=pT68FS3YbQ</span><span class="invisible">4</span></a></p>
-
- public
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1295893:objectType=Status
- 2017-05-10T18:01:51Z
- 2017-05-10T18:01:51Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mamot.fr/@Chat2Gouttieres" class="u-url mention">@<span>Chat2Gouttieres</span></a></span></p><p>Ah bah après faut savoir mettre à profit ce savoir ^^</p>
-
-
- public
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1295815:objectType=Status
- 2017-05-10T18:00:02Z
- 2017-05-10T18:00:02Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mamot.fr/@Chat2Gouttieres" class="u-url mention">@<span>Chat2Gouttieres</span></a></span></p><p>Exactement. On a les jeux mais pas le pain encore.</p><p>Finalement on a rien inventé :-p</p>
-
-
- public
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1295778:objectType=Status
- 2017-05-10T17:58:52Z
- 2017-05-10T17:58:52Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mamot.fr/@Chat2Gouttieres" class="u-url mention">@<span>Chat2Gouttieres</span></a></span></p><p>C'est ça visiblement dans notre société dite moderne... "Créer l'illusion que" Oo.</p>
-
-
- public
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1294943:objectType=Status
- 2017-05-10T17:31:44Z
- 2017-05-10T17:31:44Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- Hey.
- <p><span class="h-card"><a href="https://mastodon.social/@lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span></p><p>Hey!!!</p>
-
-
- public
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1294914:objectType=Status
- 2017-05-10T17:30:40Z
- 2017-05-10T17:30:40Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mamot.fr/@EloClemTiti" class="u-url mention">@<span>EloClemTiti</span></a></span></p><p>J'ai souvent cette impression en effet 😂</p>
-
-
- public
-
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1294148:objectType=Status
- 2017-05-10T17:02:01Z
- 2017-05-10T17:02:01Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>Les gars, les boss veulent voir de l'avancement!! Une idée?</p><p>On fait comme d'habitude. On divise nos tâches en 25.000 tâches unitaires, on fout du vert au maximum et on crée l'illusion que ça a bien avancé!</p><p>Deal!!</p><p>Bob, tu choisis quel vert on utilise<br />Alice, t'es en charge de la typo<br />Moi, je m'occupe qu'on prend bien le dernier template ppt fournit par la comm interne.</p><p>Des winners qu'on est!!!! Des WI-NNERS!!!</p>
-
- public
-
-
-
-
- tag:mamot.fr,2017-05-10:objectId=1293995:objectType=Status
- 2017-05-10T16:57:53Z
- 2017-05-10T16:57:53Z
- New status by Skruyb
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://mastodon.social/@SauceHair" class="u-url mention">@<span>SauceHair</span></a></span></p><p>Cool!!</p><p>Bon courage.</p>
-
-
- public
-
-
-
-
-
diff --git a/test/fixtures/tesla_mock/https___mastodon.social_users_lambadalambda.atom b/test/fixtures/tesla_mock/https___mastodon.social_users_lambadalambda.atom
deleted file mode 100644
index 4d732b109..000000000
--- a/test/fixtures/tesla_mock/https___mastodon.social_users_lambadalambda.atom
+++ /dev/null
@@ -1,464 +0,0 @@
-
-
- https://mastodon.social/users/lambadalambda.atom
- Critical Value
-
- 2017-04-16T21:47:25Z
- https://files.mastodon.social/accounts/avatars/000/000/264/original/1429214160519.gif
-
- https://mastodon.social/users/lambadalambda
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/lambadalambda
- lambadalambda
- lambadalambda@mastodon.social
-
-
-
- lambadalambda
- Critical Value
- public
-
-
-
-
-
-
-
- tag:mastodon.social,2017-05-04:objectId=4991300:objectType=Status
- 2017-05-04T14:10:30Z
- 2017-05-04T14:10:30Z
- Delete
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/delete
-
-
-
-
- tag:mastodon.social,2017-05-04:objectId=4980289:objectType=Status
- 2017-05-04T07:43:23Z
- 2017-05-04T07:43:23Z
- Delete
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/delete
-
-
-
-
- tag:mastodon.social,2017-05-03:objectId=4952899:objectType=Status
- 2017-05-03T17:26:43Z
- 2017-05-03T17:26:43Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> OK!!</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-05-03:objectId=4952810:objectType=Status
- 2017-05-03T17:24:34Z
- 2017-05-03T17:24:34Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> yeah :)</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-05-03:objectId=4950388:objectType=Status
- 2017-05-03T16:22:00Z
- 2017-05-03T16:22:00Z
- lambadalambda shared a status by lambadalambda@social.heldscal.la
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:social.heldscal.la,2017-05-03:noticeId=2030733:objectType=note
- 2017-05-03T12:29:20Z
- 2017-05-03T12:29:31Z
- New status by lambadalambda@social.heldscal.la
-
- https://social.heldscal.la/user/23211
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- lambadalambda@social.heldscal.la
- Call me Deacon Blues.
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- Time for work. <a href="https://social.heldscal.la/file/953c117a1e7e4c763755d2ac29cf1aae08e025599f4a4cc11ddff4082c07f969.jpg">https://social.heldscal.la/attachment/120552</a>
-
-
- public
-
-
- Time for work. <a href="https://social.heldscal.la/file/953c117a1e7e4c763755d2ac29cf1aae08e025599f4a4cc11ddff4082c07f969.jpg">https://social.heldscal.la/attachment/120552</a>
-
- public
-
-
-
-
- tag:mastodon.social,2017-05-03:objectId=4934452:objectType=Status
- 2017-05-03T08:21:09Z
- 2017-05-03T08:21:09Z
- lambadalambda shared a status by lain@pleroma.soykaf.com
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- https://pleroma.soykaf.com/objects/4c1bda26-902e-4525-9fcd-b9fd44925193
- 2017-05-03T08:04:44Z
- 2017-05-03T08:05:52Z
- New status by lain@pleroma.soykaf.com
-
- https://pleroma.soykaf.com/users/lain
- http://activitystrea.ms/schema/1.0/person
- https://pleroma.soykaf.com/users/lain
- lain
- lain@pleroma.soykaf.com
- Test account
-
-
-
- lain
- Lain Iwakura
- Test account
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- Added returning the entries as xml... let's see if the mastodon hammering stops now.
-
- public
-
-
- Added returning the entries as xml... let's see if the mastodon hammering stops now.
-
- public
-
-
-
-
- tag:mastodon.social,2017-05-02:objectId=4905499:objectType=Status
- 2017-05-02T19:34:21Z
- 2017-05-02T19:34:21Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> yay!</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-05-02:objectId=4905442:objectType=Status
- 2017-05-02T19:33:33Z
- 2017-05-02T19:33:33Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> so?</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-05-02:objectId=4901603:objectType=Status
- 2017-05-02T18:33:06Z
- 2017-05-02T18:33:06Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> hey</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-05-01:objectId=4836720:objectType=Status
- 2017-05-01T18:52:16Z
- 2017-05-01T18:52:16Z
- lambadalambda shared a status by lain@pleroma.soykaf.com
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- https://pleroma.soykaf.com/objects/7b41bb51-9aba-436a-82d9-dd3f5aca98c9
- 2017-05-01T18:50:54Z
- 2017-05-01T18:50:57Z
- New status by lain@pleroma.soykaf.com
-
- https://pleroma.soykaf.com/users/lain
- http://activitystrea.ms/schema/1.0/person
- https://pleroma.soykaf.com/users/lain
- lain
- lain@pleroma.soykaf.com
- Test account
-
-
-
- lain
- Lain Iwakura
- Test account
- public
-
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <a href="https://mastodon.social/users/lambadalambda">@lambadalambda@mastodon.social</a> you're an all-star.
-
-
- public
-
-
-
- <a href="https://mastodon.social/users/lambadalambda">@lambadalambda@mastodon.social</a> you're an all-star.
-
- public
-
-
-
-
- tag:mastodon.social,2017-05-01:objectId=4836142:objectType=Status
- 2017-05-01T18:38:47Z
- 2017-05-01T18:38:47Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> Hey now!</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-05-01:objectId=4836055:objectType=Status
- 2017-05-01T18:37:04Z
- 2017-05-01T18:37:04Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> hello</p>
-
-
- public
-
-
-
-
-
- tag:mastodon.social,2017-05-01:objectId=4834850:objectType=Status
- 2017-05-01T18:10:43Z
- 2017-05-01T18:10:43Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> Hey!</p>
-
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-29:objectId=4694455:objectType=Status
- 2017-04-29T18:39:12Z
- 2017-04-29T18:39:12Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>@lain@pleroma.soykaf.com What's up?</p>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-29:objectId=4694384:objectType=Status
- 2017-04-29T18:37:32Z
- 2017-04-29T18:37:32Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://social.heldscal.la/lain" class="u-url mention">@<span>lain</span></a></span> Hey.</p>
-
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-07:objectId=1874242:objectType=Status
- 2017-04-07T11:02:56Z
- 2017-04-07T11:02:56Z
- lambadalambda shared a status by 0xroy@social.wxcafe.net
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:social.wxcafe.net,2017-04-07:objectId=72554:objectType=Status
- 2017-04-07T11:01:59Z
- 2017-04-07T11:02:00Z
- New status by 0xroy@social.wxcafe.net
-
- https://social.wxcafe.net/users/0xroy
- http://activitystrea.ms/schema/1.0/person
- https://social.wxcafe.net/users/0xroy
- 0xroy
- 0xroy@social.wxcafe.net
- ta caution weeb | discussions privées : <a href="https://%F0%9F%92%8C.0xroy.me"><span class="invisible">https://</span><span class="">💌.0xroy.me</span><span class="invisible"></span></a>
-
-
-
- 0xroy
- 「R O Y 🍵 B O S」
- ta caution weeb | discussions privées : https://💌.0xroy.me
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>someone pls eli5 matrix (protocol) and riot</p>
-
- public
-
-
- <p>someone pls eli5 matrix (protocol) and riot</p>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-06:objectId=1768247:objectType=Status
- 2017-04-06T11:10:19Z
- 2017-04-06T11:10:19Z
- lambadalambda shared a status by areyoutoo@mastodon.xyz
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:mastodon.xyz,2017-04-05:objectId=133327:objectType=Status
- 2017-04-05T17:36:41Z
- 2017-04-05T18:12:14Z
- New status by areyoutoo@mastodon.xyz
-
- https://mastodon.xyz/users/areyoutoo
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.xyz/users/areyoutoo
- areyoutoo
- areyoutoo@mastodon.xyz
- devops | retired gamedev | always boost puppy pics
-
-
-
- areyoutoo
- Raw Butter
- devops | retired gamedev | always boost puppy pics
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>Some UX thoughts for <a href="https://mastodon.xyz/tags/mastodev">#<span>mastodev</span></a>:</p><p>- Would be nice if I could work on multiple draft toots? Clicking to reply to someone seems to erase any draft I had been working on.</p><p>- Kinda risky to click on the Federated Timeline if it loads new toots and scrolls 10ms before I click on something.</p><p>I probably don't know enough web frontend to help, but it might be fun to try.</p>
-
-
- public
-
-
- <p>Some UX thoughts for <a href="https://mastodon.xyz/tags/mastodev">#<span>mastodev</span></a>:</p><p>- Would be nice if I could work on multiple draft toots? Clicking to reply to someone seems to erase any draft I had been working on.</p><p>- Kinda risky to click on the Federated Timeline if it loads new toots and scrolls 10ms before I click on something.</p><p>I probably don't know enough web frontend to help, but it might be fun to try.</p>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-06:objectId=1764509:objectType=Status
- 2017-04-06T10:15:38Z
- 2017-04-06T10:15:38Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- This is a test for cw federation
- <p>This is a test for cw federation body text.</p>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-05:objectId=1645208:objectType=Status
- 2017-04-05T07:14:53Z
- 2017-04-05T07:14:53Z
- lambadalambda shared a status by lambadalambda@social.heldscal.la
- http://activitystrea.ms/schema/1.0/activity
- http://activitystrea.ms/schema/1.0/share
-
- tag:social.heldscal.la,2017-04-05:noticeId=1502088:objectType=note
- 2017-04-05T06:12:09Z
- 2017-04-05T07:12:47Z
- New status by lambadalambda@social.heldscal.la
-
- https://social.heldscal.la/user/23211
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- lambadalambda@social.heldscal.la
- Call me Deacon Blues.
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
- public
-
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- Federation 101: <a href="https://www.youtube.com/watch?v=t1lYU5CA40o">https://www.youtube.com/watch?v=t1lYU5CA40o</a>
-
- public
-
-
- Federation 101: <a href="https://www.youtube.com/watch?v=t1lYU5CA40o">https://www.youtube.com/watch?v=t1lYU5CA40o</a>
-
- public
-
-
-
-
- tag:mastodon.social,2017-04-05:objectId=1641750:objectType=Status
- 2017-04-05T05:44:48Z
- 2017-04-05T05:44:48Z
- New status by lambadalambda
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> just a test.</p>
-
-
- public
-
-
-
-
diff --git a/test/fixtures/tesla_mock/https___pawoo.net_users_pekorino.atom b/test/fixtures/tesla_mock/https___pawoo.net_users_pekorino.atom
deleted file mode 100644
index 17d1956e8..000000000
--- a/test/fixtures/tesla_mock/https___pawoo.net_users_pekorino.atom
+++ /dev/null
@@ -1,231 +0,0 @@
-
-
- https://pawoo.net/users/pekorino.atom
- モノエ
- シアトル・米国
-
-GNUsocial 英語版
-http://shitposter.club/mono
-
-
- 2017-05-07T09:28:20Z
- https://img.pawoo.net/accounts/avatars/000/128/378/original/e1fce04a36a1ad90.jpg
-
- https://pawoo.net/users/pekorino
- http://activitystrea.ms/schema/1.0/person
- https://pawoo.net/users/pekorino
- pekorino
- pekorino@pawoo.net
- <p>シアトル・米国</p><p>GNUsocial 英語版<br /><a href="http://shitposter.club/mono" rel="nofollow noopener" target="_blank"><span class="invisible">http://</span><span class="">shitposter.club/mono</span><span class="invisible"></span></a> </p>
-
-
-
- pekorino
- モノエ
- シアトル・米国
-
-GNUsocial 英語版
-http://shitposter.club/mono
-
-
- public
-
-
-
-
-
-
- tag:pawoo.net,2017-05-07:objectId=9319211:objectType=Status
- 2017-05-07T09:56:35Z
- 2017-05-07T09:56:35Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://shitposter.club/moonman" class="u-url mention">@<span>moonman</span></a></span> <span class="h-card"><a href="https://shitposter.club/rw" class="u-url mention">@<span>rw</span></a></span> <span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> <span class="h-card"><a href="https://shitposter.club/mono" class="u-url mention">@<span>mono</span></a></span> </p><p>i have to wait for someone to respond to this before i can follow because i dont think this software has a direct follow by url option</p>
-
-
-
-
-
- public
-
-
-
-
-
- tag:pawoo.net,2017-05-07:objectId=9318595:objectType=Status
- 2017-05-07T09:54:39Z
- 2017-05-07T09:54:39Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://shitposter.club/mono" class="u-url mention">@<span>mono</span></a></span> <span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> <span class="h-card"><a href="https://shitposter.club/rw" class="u-url mention">@<span>rw</span></a></span> <span class="h-card"><a href="https://shitposter.club/moonman" class="u-url mention">@<span>moonman</span></a></span> <br />please respond</p>
-
-
-
-
-
- public
-
-
-
-
-
- tag:pawoo.net,2017-05-07:objectId=9313978:objectType=Status
- 2017-05-07T09:39:17Z
- 2017-05-07T09:39:17Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://shitposter.club/moonman" class="u-url mention">@<span>moonman</span></a></span> <br />mastodon is so slow. browser crashed twice trying to set avatar</p>
-
-
- public
-
-
-
-
- tag:pawoo.net,2017-05-07:objectId=9312691:objectType=Status
- 2017-05-07T09:34:38Z
- 2017-05-07T09:34:38Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://shitposter.club/hardbass2k8" class="u-url mention">@<span>hardbass2k8</span></a></span> <a href="https://pawoo.net/media/mZJjLpbPU72GFEz2Svk" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">pawoo.net/media/mZJjLpbPU72GFE</span><span class="invisible">z2Svk</span></a></p>
-
-
-
- public
-
-
-
-
-
- tag:pawoo.net,2017-05-07:objectId=9312379:objectType=Status
- 2017-05-07T09:33:29Z
- 2017-05-07T09:33:29Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://shitposter.club/hardbass2k8" class="u-url mention">@<span>hardbass2k8</span></a></span> <a href="https://pawoo.net/media/nt5JHBEHyTN2bqzdcGU" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">pawoo.net/media/nt5JHBEHyTN2bq</span><span class="invisible">zdcGU</span></a></p>
-
-
-
- public
-
-
-
-
-
- tag:pawoo.net,2017-05-07:objectId=9311765:objectType=Status
- 2017-05-07T09:31:26Z
- 2017-05-07T09:31:26Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p><a href="https://pawoo.net/media/C4RV6ubsEtvS04DX6qs" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">pawoo.net/media/C4RV6ubsEtvS04</span><span class="invisible">DX6qs</span></a></p>
-
-
- public
-
-
-
-
- tag:pawoo.net,2017-05-07:objectId=9311610:objectType=Status
- 2017-05-07T09:30:59Z
- 2017-05-07T09:30:59Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p><a href="https://pawoo.net/media/MBmkeEdrjs8pAtCHN6s" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">pawoo.net/media/MBmkeEdrjs8pAt</span><span class="invisible">CHN6s</span></a></p>
-
-
- public
-
-
-
-
- tag:pawoo.net,2017-05-07:objectId=9307782:objectType=Status
- 2017-05-07T09:16:47Z
- 2017-05-07T09:16:47Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://shitposter.club/mono" class="u-url mention">@<span>mono</span></a></span></p><p>test</p>
-
-
- public
-
-
-
-
- tag:pawoo.net,2017-05-07:objectId=9307444:objectType=Status
- 2017-05-07T09:15:42Z
- 2017-05-07T09:15:42Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://shitposter.club/hardbass2k8" class="u-url mention">@<span>hardbass2k8</span></a></span> テスト</p>
-
-
- public
-
-
-
-
-
- tag:pawoo.net,2017-05-07:objectId=9307239:objectType=Status
- 2017-05-07T09:14:58Z
- 2017-05-07T09:14:58Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>ててててててテスト</p>
-
- public
-
-
-
-
- tag:pawoo.net,2017-04-20:objectId=2212164:objectType=Status
- 2017-04-20T06:19:18Z
- 2017-04-20T06:19:18Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/comment
- http://activitystrea.ms/schema/1.0/post
- <p><span class="h-card"><a href="https://shitposter.club/mono" class="u-url mention">@<span>mono</span></a></span> <a href="https://pawoo.net/media/iMbjMBVPfZJX3lUC2Sc" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">pawoo.net/media/iMbjMBVPfZJX3l</span><span class="invisible">UC2Sc</span></a></p>
-
-
-
- public
-
-
-
-
-
- tag:pawoo.net,2017-04-20:objectId=2206216:objectType=Status
- 2017-04-20T05:57:59Z
- 2017-04-20T05:57:59Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>テスト</p>
-
- public
-
-
-
-
- tag:pawoo.net,2017-04-20:objectId=2204702:objectType=Status
- 2017-04-20T05:52:09Z
- 2017-04-20T05:52:09Z
- New status by pekorino
- http://activitystrea.ms/schema/1.0/note
- http://activitystrea.ms/schema/1.0/post
- <p>HELLOWORLD</p>
-
- public
-
-
-
-
diff --git a/test/fixtures/tesla_mock/https___pleroma.soykaf.com_users_lain_feed.atom.xml b/test/fixtures/tesla_mock/https___pleroma.soykaf.com_users_lain_feed.atom.xml
deleted file mode 100644
index a2a2629a6..000000000
--- a/test/fixtures/tesla_mock/https___pleroma.soykaf.com_users_lain_feed.atom.xml
+++ /dev/null
@@ -1 +0,0 @@
-https://pleroma.soykaf.com/users/lain/feed.atomlain's timeline2017-05-05T08:38:03.385598https://pleroma.soykaf.com/users/lainhttp://activitystrea.ms/schema/1.0/personhttps://pleroma.soykaf.com/users/lainlainLain IwakuraTest accountlainhttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/sharehttps://pleroma.soykaf.com/activities/579e4224-b2ab-4ffa-8bbe-f7197a0a38d1lain repeated a noticeRT In just seven days, I can make you a man!<br> -- The Rocky Horror Picture Show2017-05-05T08:38:03.3855902017-05-05T08:38:03.385598https://pleroma.soykaf.com/contexts/e8673466-9642-4c9e-8781-f0f69d6b15aehttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/53dd40f4-3069-45a1-863b-94a9b317093dNew note by fortuneIn just seven days, I can make you a man!<br> -- The Rocky Horror Picture Show2017-05-05T02:10:02.9308022017-05-05T08:38:03.423539https://pleroma.soykaf.com/contexts/e8673466-9642-4c9e-8781-f0f69d6b15aehttps://pleroma.soykaf.com/users/fortunehttp://activitystrea.ms/schema/1.0/personhttps://pleroma.soykaf.com/users/fortunefortunefortuneThe trusty unix fortune filefortunehttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/2bc86888-a256-4771-bb53-903f375804f9New note by lainRTs federating into pleroma now.2017-05-04T18:18:50.2764702017-05-04T18:18:50.276476https://pleroma.soykaf.com/contexts/b7ae9350-f317-48aa-8058-2668091bb280http://activitystrea.ms/schema/1.0/favoritehttps://pleroma.soykaf.com/activities/902b1f50-f295-4189-8c15-9c880919e121New favorite by lainlain favorited something2017-05-04T08:03:01.3088902017-05-04T08:03:01.308927http://activitystrea.ms/schema/1.0/notetag:gs.smuglo.li,2017-05-03:noticeId=2164642:objectType=commenthttps://pleroma.soykaf.com/contexts/9419f742-aaba-4eb5-89a2-8b599e8bf43chttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/4e396e66-b063-454c-92c6-583506a9a2deNew note by lainClassic.<br><a href='https://pleroma.soykaf.com/media/adc36781-9765-4d9a-b57c-99b7a99108b2/mikodaemonstop.jpg'>https://pleroma.soykaf.com/media/adc36781-9765-4d9a-b57c-99b7a99108b2/mikodaemonstop.jpg</a>2017-05-04T07:59:45.1806192017-05-04T07:59:45.180628https://pleroma.soykaf.com/contexts/6afd9659-41e6-406d-ae97-43b880722861http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/85d183e9-c935-4655-a1e6-8d69a4108235New note by lainん?<br><a href='https://pleroma.soykaf.com/media/ab144c6d-a38c-4d35-a60b-9a998becc094/n.gif'>https://pleroma.soykaf.com/media/ab144c6d-a38c-4d35-a60b-9a998becc094/n.gif</a>2017-05-04T07:58:08.8107162017-05-04T07:58:08.810726https://pleroma.soykaf.com/contexts/2e1aa616-86ce-4b50-9c81-63045a972156http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/7c5c45bb-e4d9-4f72-b4c6-0314afbd3553New note by lainyeah.2017-05-04T07:55:17.3352902017-05-04T07:55:17.335299https://pleroma.soykaf.com/contexts/702c06cf-56ff-4a2f-bf5a-150bc00bb168http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/f33f5f54-1c1d-4462-b9ed-229bb635dfd8New note by lainyeah.2017-05-04T07:49:24.9314842017-05-04T07:49:24.931492https://pleroma.soykaf.com/contexts/c4932e7a-00cb-431a-b4ec-7404cb9daf65http://activitystrea.ms/schema/1.0/favoritehttps://pleroma.soykaf.com/activities/0709bc79-7ac5-4983-b6d0-2205bf5ceba3New favorite by lainlain favorited something2017-05-03T20:08:11.2945792017-05-03T20:08:11.294587http://activitystrea.ms/schema/1.0/notetag:pawoo.net,2017-05-03:objectId=7967690:objectType=Statushttps://pleroma.soykaf.com/contexts/07a4b34d-6255-4bb2-8c73-c295a09ac952http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/72c0288e-62d8-43d9-b3d8-1a9d78be8375New note by lain<a href='https://pawoo.net/users/God_Emperor_of_Dune'>@God_Emperor_of_Dune@pawoo.net</a> no man, just some fun domination play among buddies, nothing homo about it.2017-05-03T20:01:00.9983142017-05-03T20:01:00.998322https://pleroma.soykaf.com/contexts/07a4b34d-6255-4bb2-8c73-c295a09ac952http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/d846409e-cf2a-4b68-a149-d5de34a91b0dNew note by lain<a href='https://social.heldscal.la/user/24974'>@dtluna@social.heldscal.la</a> btfo.<br><a href='https://pleroma.soykaf.com/media/fbe42e87-5574-4544-89ba-29ddf46227fa/pnc__picked_media_1889ce61-4961-4fea-8a14-04fe6783ebf6.jpg'>https://pleroma.soykaf.com/media/fbe42e87-5574-4544-89ba-29ddf46227fa/pnc__picked_media_1889ce61-4961-4fea-8a14-04fe6783ebf6.jpg</a>2017-05-03T20:00:15.8609952017-05-03T20:00:15.861002https://pleroma.soykaf.com/contexts/0e88f35e-1a38-4181-bef9-5cbb0d943c63http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/9075265f-f3b2-40e8-809f-10714f05a1fdNew note by lain#nohomo <br><a href='https://pleroma.soykaf.com/media/5cc5ad91-d637-4c45-a691-5ea778dc1bb3/pnc__picked_media_f62dc9ae-ea23-4fe6-bf85-cb75a129ab34.jpg'>https://pleroma.soykaf.com/media/5cc5ad91-d637-4c45-a691-5ea778dc1bb3/pnc__picked_media_f62dc9ae-ea23-4fe6-bf85-cb75a129ab34.jpg</a>2017-05-03T19:50:38.5891062017-05-03T19:50:38.589113https://pleroma.soykaf.com/contexts/07a4b34d-6255-4bb2-8c73-c295a09ac952http://activitystrea.ms/schema/1.0/favoritehttps://pleroma.soykaf.com/activities/7924e992-0a95-40d9-8d17-7278c6c634c9New favorite by lainlain favorited something2017-05-03T18:32:59.2733752017-05-03T18:32:59.273382http://activitystrea.ms/schema/1.0/notetag:gs.smuglo.li,2017-05-03:noticeId=2164774:objectType=commenthttps://pleroma.soykaf.com/contexts/9419f742-aaba-4eb5-89a2-8b599e8bf43chttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/569571ba-f54c-41b0-bde4-0fede54599f0New note by lain<a href='https://gs.smuglo.li/user/2'>@nepfag@gs.smuglo.li</a>@gs.smuglo.li I'll do proper subfolders soon, for now it's one per attachment + thumbs etc.2017-05-03T18:27:01.4499492017-05-03T18:27:01.449956https://pleroma.soykaf.com/contexts/9419f742-aaba-4eb5-89a2-8b599e8bf43chttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/sharehttps://pleroma.soykaf.com/activities/b6cc5d7c-0785-4785-a689-f1b05dc9b24dlain repeated a noticeRT <p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> Hey now!</p>2017-05-03T18:13:48.8910612017-05-03T18:13:48.891069https://pleroma.soykaf.com/contexts/ec6fdd27-0ec1-4672-8408-5a8e5a9c094bhttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posttag:mastodon.social,2017-05-01:objectId=4836142:objectType=StatusNew note by lambadalambda@mastodon.social<p><span class="h-card"><a href="https://pleroma.soykaf.com/users/lain" class="u-url mention">@<span>lain</span></a></span> Hey now!</p>2017-05-01T18:38:49.3653912017-05-03T18:13:48.934745https://pleroma.soykaf.com/contexts/ec6fdd27-0ec1-4672-8408-5a8e5a9c094bhttps://mastodon.social/users/lambadalambdahttp://activitystrea.ms/schema/1.0/personhttps://mastodon.social/users/lambadalambdalambadalambda@mastodon.socialCritical Valuenillambadalambda@mastodon.socialhttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/sharehttps://pleroma.soykaf.com/activities/3c09eb31-4ba8-4ff5-b4fa-8f6f74d58bf0lain repeated a noticeRT Haha, salmons from mastodon didn't work because it's not implementing conversation id...2017-05-03T18:13:15.1480412017-05-03T18:13:15.148049tag:social.heldscal.la,2017-05-01:objectType=thread:nonce=86cda6c734401d80http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posttag:social.heldscal.la,2017-05-01:noticeId=2000425:objectType=noteNew note by lambadalambda@social.heldscal.laHaha, salmons from mastodon didn't work because it's not implementing conversation id...2017-05-01T18:39:36.2163772017-05-03T18:13:15.171143tag:social.heldscal.la,2017-05-01:objectType=thread:nonce=86cda6c734401d80https://social.heldscal.la/user/23211http://activitystrea.ms/schema/1.0/personhttps://social.heldscal.la/user/23211lambadalambda@social.heldscal.laConstance Variablenillambadalambda@social.heldscal.lahttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/b8fc83d5-d7c0-4b5f-8976-0317b51935eaNew note by lain.<br><a href='https://pleroma.soykaf.com/media/563008a7-9a60-47ac-a263-22835729adf6/1492530528735.png'>https://pleroma.soykaf.com/media/563008a7-9a60-47ac-a263-22835729adf6/1492530528735.png</a>2017-05-03T18:12:50.7452412017-05-03T18:12:50.745249https://pleroma.soykaf.com/contexts/9419f742-aaba-4eb5-89a2-8b599e8bf43chttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/sharehttps://pleroma.soykaf.com/activities/ac93ecef-cde0-48e8-ae4b-19e3b94dbe30lain repeated a noticeRT Awright, which one of you hid my PENIS ENVY?2017-05-03T18:08:49.2310012017-05-03T18:08:49.235354https://pleroma.soykaf.com/contexts/a9132cf8-6afa-4dd8-8b29-7b6fcab623b8http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/04e15c66-4936-4930-a134-32841f088bcfNew note by fortuneAwright, which one of you hid my PENIS ENVY?2017-05-01T19:40:03.1699962017-05-03T18:08:49.285347https://pleroma.soykaf.com/contexts/a9132cf8-6afa-4dd8-8b29-7b6fcab623b8https://pleroma.soykaf.com/users/fortunehttp://activitystrea.ms/schema/1.0/personhttps://pleroma.soykaf.com/users/fortunefortunefortuneThe trusty unix fortune filefortunehttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/sharehttps://pleroma.soykaf.com/activities/54b10fa9-d602-4a0f-b659-e6d3f7bc8c4clain repeated a noticeRT He is a man capable of turning any colour into grey.<br> -- John LeCarre2017-05-03T17:44:47.5789842017-05-03T17:44:47.578996https://pleroma.soykaf.com/contexts/8aebc8e5-5352-4047-8b74-4098a5830ccahttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/70ded299-184d-49cd-af17-23c0950536aaNew note by fortuneHe is a man capable of turning any colour into grey.<br> -- John LeCarre2017-05-02T08:40:03.4194652017-05-03T17:44:47.646192https://pleroma.soykaf.com/contexts/8aebc8e5-5352-4047-8b74-4098a5830ccahttps://pleroma.soykaf.com/users/fortunehttp://activitystrea.ms/schema/1.0/personhttps://pleroma.soykaf.com/users/fortunefortunefortuneThe trusty unix fortune filefortunehttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/sharehttps://pleroma.soykaf.com/activities/eff9fe49-8fc9-48e6-a1a0-921aa25c8118lain repeated a noticeRT The real trouble with women is that they have *all* the pussy.2017-05-03T17:30:22.5960372017-05-03T17:30:22.596048https://pleroma.soykaf.com/contexts/8c88c9df-4e40-4f54-b15f-c21848d1a8e2http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/0b9b008d-49eb-48a9-a18d-172ce7d01ea2New note by fortuneThe real trouble with women is that they have *all* the pussy.2017-05-02T12:10:03.6030862017-05-03T17:30:22.683141https://pleroma.soykaf.com/contexts/8c88c9df-4e40-4f54-b15f-c21848d1a8e2https://pleroma.soykaf.com/users/fortunehttp://activitystrea.ms/schema/1.0/personhttps://pleroma.soykaf.com/users/fortunefortunefortuneThe trusty unix fortune filefortunehttp://activitystrea.ms/schema/1.0/favoritehttps://pleroma.soykaf.com/activities/5d90bb26-ce23-4a5b-8dbd-651011780007New favorite by lainlain favorited something2017-05-03T17:28:20.9679262017-05-03T17:28:20.967935http://activitystrea.ms/schema/1.0/notetag:mastodon.social,2017-05-03:objectId=4952899:objectType=Statushttps://pleroma.soykaf.com/contexts/42701ab4-964a-441a-a372-f51bd183e441
\ No newline at end of file
diff --git a/test/fixtures/tesla_mock/https___shitposter.club_api_statuses_show_2827873.atom.xml b/test/fixtures/tesla_mock/https___shitposter.club_api_statuses_show_2827873.atom.xml
deleted file mode 100644
index 26fdebb49..000000000
--- a/test/fixtures/tesla_mock/https___shitposter.club_api_statuses_show_2827873.atom.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment
- New comment by moonman
- @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> @<a href="https://gs.smuglo.li/user/2326" class="h-card mention" title="Dolus_McHonest">dolus</a> childhood poring over Strong's concordance and a koine Greek dictionary, fast forward to 2017 and some fuckstick who translates japanese jackoff material tells me you just need to make it sound right in English
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T08:51:48+00:00
- 2017-05-05T08:51:48+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://shitposter.club/user/1
- moonman
- EMAIL:shitposterclub@gmail.com XMPP: moon@talk.shitposter.club Matrix Ed25519 fingerprint: 2HuDUTEz3iFN5N3xl6PYp9xZW/EWhgbbt78SrFy4w8o
-
-
-
-
-
- moonman
- Generic Enemy
- EMAIL:shitposterclub@gmail.com XMPP: moon@talk.shitposter.club Matrix Ed25519 fingerprint: 2HuDUTEz3iFN5N3xl6PYp9xZW/EWhgbbt78SrFy4w8o
-
- The Moon
-
-
- homepage
- https://shitposter.club/moonman
- true
-
-
-
-
-
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=3c16e9c2681f6d26
-
-
-
-
-
-
-
-
diff --git a/test/fixtures/tesla_mock/https___shitposter.club_api_statuses_user_timeline_1.atom.xml b/test/fixtures/tesla_mock/https___shitposter.club_api_statuses_user_timeline_1.atom.xml
deleted file mode 100644
index 31df7c2a6..000000000
--- a/test/fixtures/tesla_mock/https___shitposter.club_api_statuses_user_timeline_1.atom.xml
+++ /dev/null
@@ -1,454 +0,0 @@
-
-
- GNU social
- https://shitposter.club/api/statuses/user_timeline/1.atom
- moonman timeline
- Updates from moonman on Shitposter Club!
- https://shitposter.club/avatar/1-96-20170503024316.jpeg
- 2017-05-05T13:24:09+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://shitposter.club/user/1
- moonman
- EMAIL:shitposterclub@gmail.com XMPP: moon@talk.shitposter.club Matrix Ed25519 fingerprint: 2HuDUTEz3iFN5N3xl6PYp9xZW/EWhgbbt78SrFy4w8o
-
-
-
-
-
- moonman
- Generic Enemy
- EMAIL:shitposterclub@gmail.com XMPP: moon@talk.shitposter.club Matrix Ed25519 fingerprint: 2HuDUTEz3iFN5N3xl6PYp9xZW/EWhgbbt78SrFy4w8o
-
- The Moon
-
-
- homepage
- https://shitposter.club/moonman
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
- tag:shitposter.club,2017-05-05:subscription:1:person:23190:2017-05-05T11:43:58+00:00
- Generic Enemy (moonman)'s status on Friday, 05-May-2017 11:43:58 UTC
- <a href="https://shitposter.club/moonman">Generic Enemy</a> started following <a href="https://noagendasocial.com/@Ma5on">Mason</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-05-05T11:43:58+00:00
- 2017-05-05T11:43:58+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://noagendasocial.com/users/Ma5on
- Mason
-
-
-
-
-
- ma5on
- Mason
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=abffa9c14a054d3b
-
-
-
-
-
-
- tag:shitposter.club,2017-05-05:subscription:1:person:14357:2017-05-05T10:29:03+00:00
- Generic Enemy (moonman)'s status on Friday, 05-May-2017 10:29:03 UTC
- <a href="https://shitposter.club/moonman">Generic Enemy</a> started following <a href="https://mastodon.cloud/@ohyran">Jens Reuterberg</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-05-05T10:29:03+00:00
- 2017-05-05T10:29:03+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.cloud/users/ohyran
- Jens Reuterberg
- RPG-nerd, illustrator, Open Source enthusiast, KDE dude, designer and gay lefty. Might be a cliché - but we will soon find out!
-
-
-
-
-
- ohyran
- Jens Reuterberg
- RPG-nerd, illustrator, Open Source enthusiast, KDE dude, designer and gay lefty. Might be a cliché - but we will soon find out!
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=937151d4825a85bf
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2017-05-05:noticeId=2828637:objectType=note
- New note by moonman
- basicall i would just rather have ppl say "i like x and y" than "i'm a nerd" the term can be retired.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T10:24:54+00:00
- 2017-05-05T10:24:54+00:00
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=65992b0b9b5e6931
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2828579:objectType=comment
- New comment by moonman
- @<a href="https://gs.smuglo.li/user/35497" class="h-card mention" title="Bokuro Bokusawa">boco</a> to be honest i've turned right around and been cruel to other people, i said i'd never do it but it happens again eventually.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T10:20:33+00:00
- 2017-05-05T10:20:33+00:00
-
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=c997fc73d7f8a8f0
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2828554:objectType=comment
- New comment by moonman
- @<a href="https://mastodon.cloud/users/ohyran" class="h-card mention" title="Jens Reuterberg">ohyran</a> i won't ever get over bullying but i agree otherwise. i don't go to comic shops too often these days but i got dragged to one last year and the sheer diversity of people enjoying comics now compared to years ago was striking and it pleased me. and i noticed a couple years ago because of youtube i find things i truly enjoy watching, like in-depth videos about electronic parts, didn't exist 20 years ago. it's pretty great.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T10:18:10+00:00
- 2017-05-05T10:18:10+00:00
-
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=efae3a23b6e05767
-
-
-
-
-
-
-
- tag:shitposter.club,2017-05-05:fave:1:comment:2828502:2017-05-05T10:12:52+00:00
- Favorite
- moonman favorited something by ohyran: <p><span class="h-card"><a href="https://shitposter.club/moonman" class="u-url mention">@<span>moonman</span></a></span> fair enough - that distinction makes it clearer...</p><p>On the other hand - those of us who did "pay the price" of being nerdy little kids in the 80's and 90's should strive to get past it anyway (mental health wise not "just get over it") and see the "nerd culture" thing as a blessing of sorts. We are in the optimal spot to do it. (not saying that that is something easy btw just that NOW is the best of time to start talking about it)</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T10:12:52+00:00
- 2017-05-05T10:12:52+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:mastodon.cloud,2017-05-05:objectId=6334570:objectType=Status
- New comment by ohyran
- <p><span class="h-card"><a href="https://shitposter.club/moonman" class="u-url mention">@<span>moonman</span></a></span> fair enough - that distinction makes it clearer...</p><p>On the other hand - those of us who did "pay the price" of being nerdy little kids in the 80's and 90's should strive to get past it anyway (mental health wise not "just get over it") and see the "nerd culture" thing as a blessing of sorts. We are in the optimal spot to do it. (not saying that that is something easy btw just that NOW is the best of time to start talking about it)</p>
-
-
-
-
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=efae3a23b6e05767
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2017-05-05:noticeId=2828496:objectType=note
- New note by moonman
- things are better now, a lot less kids in america get beaten up and called a fag. still too many.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T10:11:31+00:00
- 2017-05-05T10:11:31+00:00
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=c997fc73d7f8a8f0
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2828457:objectType=comment
- New comment by moonman
- @<a href="https://shitposter.club/user/21787" class="h-card mention" title="Yukari">cutscenes</a> @<a href="https://gs.smuglo.li/user/28250" class="h-card mention" title="Bricky">thatbrickster</a> @<a href="https://gs.smuglo.li/user/35497" class="h-card mention" title="Bokuro Bokusawa">boco</a> i never understood this because nerds had pocket protectors, which was a draftsman engineer thing and therefore smart, while geeks were people in carnivals who bit heads off small animals.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T10:07:57+00:00
- 2017-05-05T10:07:57+00:00
-
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=efae3a23b6e05767
-
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2828435:objectType=comment
- New comment by moonman
- @<a href="https://mastodon.cloud/users/ohyran" class="h-card mention" title="Jens Reuterberg">ohyran</a> since i didn't specify i'm talking about people subjected to physical and psychological abuse and not people that are just mad that more people like comic books now.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T10:05:07+00:00
- 2017-05-05T10:05:07+00:00
-
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=efae3a23b6e05767
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2017-05-05:noticeId=2828326:objectType=note
- New note by moonman
- if you were a "nerd" before, like, 2001 you have permanent excuse to hate this kind of shit. <a href="https://shitposter.club/file/b79fa5644be0d6f22679136e67b7bf45c9c4a74a55c32dd2d0cf15de4ddd5be5.gif" title="https://shitposter.club/file/b79fa5644be0d6f22679136e67b7bf45c9c4a74a55c32dd2d0cf15de4ddd5be5.gif" class="attachment" id="attachment-662105" rel="nofollow external">https://shitposter.club/attachment/662105</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T09:47:42+00:00
- 2017-05-05T09:47:42+00:00
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=efae3a23b6e05767
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2017-05-05:noticeId=2828250:objectType=note
- New note by moonman
- <a href="https://shitposter.club/file/1283e2d4dd8f96b8eeb5d9a16b318e210868aa11386cf0d593891e4c75c9126e.gif" title="https://shitposter.club/file/1283e2d4dd8f96b8eeb5d9a16b318e210868aa11386cf0d593891e4c75c9126e.gif" class="attachment" id="attachment-662098" rel="nofollow external">https://shitposter.club/attachment/662098</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T09:39:06+00:00
- 2017-05-05T09:39:06+00:00
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=ea8ffae90546f0ab
-
-
-
-
-
-
-
- tag:shitposter.club,2017-05-05:fave:1:comment:2828161:2017-05-05T09:28:19+00:00
- Favorite
- moonman favorited something by kro: @<a href="https://shitposter.club/user/1" class="h-card u-url p-nickname mention" title="Generic Enemy">moonman</a> Till Brooklyn?
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T09:28:19+00:00
- 2017-05-05T09:28:19+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:gs.smuglo.li,2017-05-05:noticeId=2188587:objectType=comment
- New comment by kro
- @<a href="https://shitposter.club/user/1" class="h-card u-url p-nickname mention" title="Generic Enemy">moonman</a> Till Brooklyn?
-
-
-
-
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=d7aa6b5b057ca555
-
-
-
-
-
-
- tag:shitposter.club,2017-05-05:fave:1:comment:2828125:2017-05-05T09:24:56+00:00
- Favorite
- moonman favorited something by hardbass2k8: this has obviously interesting implications in various places, for example:<br /> the nationalism of the nazis might not have been real, who would have thought?<br /> socialism is usually promoted to implementation by real douchebags!<br /> your local social justice people might want diversity but they don't want you, m/19, white, why?<br /> amateur soccer club, they want to be the best in the amateur league but actually they just get drunk after training and are 50% overweight.<br /> This is because humans are not capable of telepathy, so if you join a group it doesn't magically align every little bit of your being with the declared group goals.<br /> <br /> Even though you see unmanned group beliefs flying around from time to time, generally groups are created from a bunch of people. they are not a container for people, they are the people inside them.<br /> <br /> so if you see a group that appears to be cool don't think of it as cool because its goals are cool but because its members are cool. if they aren't, tough cookies. don't be the retard and end up on the camp watchtower.
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T09:24:56+00:00
- 2017-05-05T09:24:56+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2828125:objectType=comment
- New comment by hardbass2k8
- this has obviously interesting implications in various places, for example:<br /> the nationalism of the nazis might not have been real, who would have thought?<br /> socialism is usually promoted to implementation by real douchebags!<br /> your local social justice people might want diversity but they don't want you, m/19, white, why?<br /> amateur soccer club, they want to be the best in the amateur league but actually they just get drunk after training and are 50% overweight.<br /> This is because humans are not capable of telepathy, so if you join a group it doesn't magically align every little bit of your being with the declared group goals.<br /> <br /> Even though you see unmanned group beliefs flying around from time to time, generally groups are created from a bunch of people. they are not a container for people, they are the people inside them.<br /> <br /> so if you see a group that appears to be cool don't think of it as cool because its goals are cool but because its members are cool. if they aren't, tough cookies. don't be the retard and end up on the camp watchtower.
-
-
-
-
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=51b227fe92f6babf
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2017-05-05:noticeId=2828128:objectType=note
- New note by moonman
- In a valid remake of They live, signs would say REBEL, and DON'T GET MARRIED AND HAVE KIDS
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T09:24:23+00:00
- 2017-05-05T09:24:23+00:00
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=b74397fa766b82c9
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2017-05-05:noticeId=2828104:objectType=note
- New note by moonman
- <a href="https://shitposter.club/file/4d34178bde99599f31a28928e1666fbd58448d8a22e94ed82222496e4a45cb07.gif" title="https://shitposter.club/file/4d34178bde99599f31a28928e1666fbd58448d8a22e94ed82222496e4a45cb07.gif" class="attachment" id="attachment-662049" rel="nofollow external">https://shitposter.club/attachment/662049</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T09:21:01+00:00
- 2017-05-05T09:21:01+00:00
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=d7aa6b5b057ca555
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2017-05-05:noticeId=2828102:objectType=note
- New note by moonman
- when ppl find out i haven't always been serious <a href="https://shitposter.club/file/5859fa95875342cc65dba0d852f726db158ce28198c326d5f13d9de7c0d2c449.gif" title="https://shitposter.club/file/5859fa95875342cc65dba0d852f726db158ce28198c326d5f13d9de7c0d2c449.gif" class="attachment" id="attachment-662053" rel="nofollow external">https://shitposter.club/attachment/662053</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T09:20:45+00:00
- 2017-05-05T09:20:45+00:00
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=0a025ac5a570b4ec
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2828086:objectType=comment
- New comment by moonman
- @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> @<a href="https://gs.smuglo.li/user/2326" class="h-card mention" title="Dolus_McHonest">dolus</a> @<a href="https://gs.smuglo.li/user/35497" class="h-card mention" title="Bokuro Bokusawa">boco</a> you are being too serious lol
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T09:17:19+00:00
- 2017-05-05T09:17:19+00:00
-
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=3c16e9c2681f6d26
-
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2017-05-05:noticeId=2828085:objectType=note
- New note by moonman
- shitposter dot club <a href="https://shitposter.club/file/9b084c7210b16abbf4d28594b924a07ef4a2a06f89d901a4c42fb1e243291263.gif" title="https://shitposter.club/file/9b084c7210b16abbf4d28594b924a07ef4a2a06f89d901a4c42fb1e243291263.gif" class="attachment" id="attachment-662047" rel="nofollow external">https://shitposter.club/attachment/662047</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T09:16:50+00:00
- 2017-05-05T09:16:50+00:00
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=d1ae088a1b91e5e5
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2017-05-05:noticeId=2828061:objectType=note
- New note by moonman
- even when i lie i tell the truth, is that so hard to understand?
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T09:15:07+00:00
- 2017-05-05T09:15:07+00:00
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=a516e4b8506b8ef5
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2828052:objectType=comment
- New comment by moonman
- @<a href="https://shitposter.club/user/9591" class="h-card mention" title="warum heißen deutschländer deutschländer">hardbass2k8</a> history, anthropology.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T09:14:22+00:00
- 2017-05-05T09:14:22+00:00
-
-
-
- tag:shitposter.club,2017-05-05:objectType=thread:nonce=fe4d7f35b13403ba
-
-
-
-
-
-
-
diff --git a/test/fixtures/tesla_mock/https___shitposter.club_notice_2827873.json b/test/fixtures/tesla_mock/https___shitposter.club_notice_2827873.json
deleted file mode 100644
index 4b7b4df44..000000000
--- a/test/fixtures/tesla_mock/https___shitposter.club_notice_2827873.json
+++ /dev/null
@@ -1 +0,0 @@
-{"@context":["https://www.w3.org/ns/activitystreams","https://shitposter.club/schemas/litepub-0.1.jsonld",{"@language":"und"}],"actor":"https://shitposter.club/users/moonman","attachment":[],"attributedTo":"https://shitposter.club/users/moonman","cc":["https://shitposter.club/users/moonman/followers"],"content":"@neimzr4luzerz @dolus childhood poring over Strong's concordance and a koine Greek dictionary, fast forward to 2017 and some fuckstick who translates japanese jackoff material tells me you just need to make it sound right in English","context":"tag:shitposter.club,2017-05-05:objectType=thread:nonce=3c16e9c2681f6d26","conversation":"tag:shitposter.club,2017-05-05:objectType=thread:nonce=3c16e9c2681f6d26","id":"tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment","inReplyTo":"tag:shitposter.club,2017-05-05:noticeId=2827849:objectType=comment","inReplyToStatusId":2827849,"published":"2017-05-05T08:51:48Z","sensitive":false,"summary":null,"tag":[],"to":["https://www.w3.org/ns/activitystreams#Public"],"type":"Note"}
\ No newline at end of file
diff --git a/test/fixtures/tesla_mock/https___social.heldscal.la_api_statuses_user_timeline_23211.atom.xml b/test/fixtures/tesla_mock/https___social.heldscal.la_api_statuses_user_timeline_23211.atom.xml
deleted file mode 100644
index 6cba5c28f..000000000
--- a/test/fixtures/tesla_mock/https___social.heldscal.la_api_statuses_user_timeline_23211.atom.xml
+++ /dev/null
@@ -1,591 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-05-05T12:01:21+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2063249:2017-05-05T11:40:21+00:00
- Favorite
- lambadalambda favorited something by tatiana: <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> they will start complaining about this, but won't come up with any solutions)</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T11:40:21+00:00
- 2017-05-05T11:40:21+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.weho.st,2017-05-05:objectId=172033:objectType=Status
- New comment by tatiana
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> they will start complaining about this, but won't come up with any solutions)</p>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=e95b99adc050e198
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2063041:2017-05-05T11:27:28+00:00
- Favorite
- lambadalambda favorited something by kat: @<a href="https://social.heldscal.la/lambadalambda" class="h-card mention" title="Constance Variable">lambadalambda</a> if the admin reading mine would delete a few it would be really useful in prioritising.
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T11:27:28+00:00
- 2017-05-05T11:27:28+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:quitter.se,2017-05-05:noticeId=11807959:objectType=comment
- New comment by kat
- @<a href="https://social.heldscal.la/lambadalambda" class="h-card mention" title="Constance Variable">lambadalambda</a> if the admin reading mine would delete a few it would be really useful in prioritising.
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=e95b99adc050e198
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:noticeId=2062924:objectType=note
- lambadalambda repeated a notice by nielsk
- RT @nielsk @<a href="https://social.heldscal.la/user/23211" class="h-card u-url p-nickname mention" title="Constance Variable">lambadalambda</a> but there are soooo many, where should I start to read?
-
- http://activitystrea.ms/schema/1.0/share
- 2017-05-05T11:09:37+00:00
- 2017-05-05T11:09:37+00:00
-
- http://activitystrea.ms/schema/1.0/activity
- tag:mastodon.social,2017-05-05:objectId=5024471:objectType=Status
-
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> but there are soooo many, where should I start to read?</p>
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T11:05:18+00:00
- 2017-05-05T11:05:18+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/nielsk
- nielsk
- Sysadmin by day and ehm… sysadmin by night. Besides that old video games, Japan, economics and some other stuff
-
-
-
-
-
- nielsk
- nielsk
- Sysadmin by day and ehm… sysadmin by night. Besides that old video games, Japan, economics and some other stuff
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:mastodon.social,2017-05-05:objectId=5024471:objectType=Status
- New comment by nielsk
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> but there are soooo many, where should I start to read?</p>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=e95b99adc050e198
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=e95b99adc050e198
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2062875:2017-05-05T11:09:27+00:00
- Favorite
- lambadalambda favorited something by nielsk: <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> but there are soooo many, where should I start to read?</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T11:09:27+00:00
- 2017-05-05T11:09:27+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:mastodon.social,2017-05-05:objectId=5024471:objectType=Status
- New comment by nielsk
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> but there are soooo many, where should I start to read?</p>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=e95b99adc050e198
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2062863:2017-05-05T11:09:11+00:00
- Favorite
- lambadalambda favorited something by kasil: <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> surely, google is not that evil !</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T11:09:11+00:00
- 2017-05-05T11:09:11+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:loutre.info,2017-05-05:objectId=23331:objectType=Status
- New comment by kasil
- <p><span class="h-card"><a href="https://social.heldscal.la/lambadalambda" class="u-url mention">@<span>lambadalambda</span></a></span> surely, google is not that evil !</p>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=e95b99adc050e198
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.heldscal.la,2017-05-05:noticeId=2062767:objectType=comment
- New comment by lambadalambda
- @<a href="https://sealion.club/user/4" class="h-card u-url p-nickname mention" title="dewoo ❎">dwmatiz</a> dunno, probably.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T10:55:17+00:00
- 2017-05-05T10:55:17+00:00
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=e95b99adc050e198
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.heldscal.la,2017-05-05:noticeId=2062705:objectType=comment
- New comment by lambadalambda
- @<a href="https://gs.smuglo.li/user/28250" class="h-card u-url p-nickname mention" title="Bricky">thatbrickster</a> I do it, too.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T10:48:12+00:00
- 2017-05-05T10:48:12+00:00
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=e95b99adc050e198
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.heldscal.la,2017-05-05:noticeId=2062620:objectType=comment
- New comment by lambadalambda
- @<a href="https://social.tchncs.de/users/israuor" class="h-card u-url p-nickname mention" title="Israuor ♂">israuor</a> @<a href="https://mastodon.gougere.fr/users/bortzmeyer" class="h-card u-url p-nickname mention" title="S. Bortzmeyer ✅">bortzmeyer</a> so, 99%. 100% for 'normal' people.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T10:38:52+00:00
- 2017-05-05T10:38:52+00:00
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=e95b99adc050e198
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.heldscal.la,2017-05-05:noticeId=2062583:objectType=note
- New note by lambadalambda
- I wonder what'll happen when people realize the admin at their mail hoster can read all their e-mails.
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T10:35:45+00:00
- 2017-05-05T10:35:45+00:00
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=e95b99adc050e198
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:subscription:23211:person:35708:2017-05-05T09:34:46+00:00
- Constance Variable (lambadalambda@social.heldscal.la)'s status on Friday, 05-May-2017 09:34:46 UTC
- <a href="https://social.heldscal.la/lambadalambda">Constance Variable</a> started following <a href="https://mastodon.social/@milouse">milouse</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-05-05T09:34:46+00:00
- 2017-05-05T09:34:46+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://mastodon.social/users/milouse
- milouse
- #Scout leader #sgdf, interested in #openweb, #semanticweb, #privacy, #foss and #socialeconomy. 0xA714ECAC8C9CEE3D
-
-
-
-
-
- milouse
- milouse
- #Scout leader #sgdf, interested in #openweb, #semanticweb, #privacy, #foss and #socialeconomy. 0xA714ECAC8C9CEE3D
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=26ca19a355bb6135
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:noticeId=2061871:objectType=note
- lambadalambda repeated a notice by safebot
- RT @<a href="https://gs.smuglo.li/user/25857" class="h-card u-url p-nickname mention" title="safebot">safebot</a> #<span class="tag"><a href="https://social.heldscal.la/tag/cheers" rel="tag">cheers</a></span> <a href="https://gs.smuglo.li/attachment/456444" title="https://gs.smuglo.li/attachment/456444" rel="nofollow external noreferrer" class="attachment" id="attachment-432334">https://gs.smuglo.li/attachment/456444</a>
-
- http://activitystrea.ms/schema/1.0/share
- 2017-05-05T09:16:17+00:00
- 2017-05-05T09:16:17+00:00
-
- http://activitystrea.ms/schema/1.0/activity
- tag:gs.smuglo.li,2017-05-05:noticeId=2188073:objectType=note
-
- #<span class="tag"><a href="https://gs.smuglo.li/tag/cheers" rel="tag">cheers</a></span> <a href="https://gs.smuglo.li/file/5099e73c83da778cd032a721e96880f99a868b712be2975d08238547a5ba06c7.jpg" title="https://gs.smuglo.li/file/5099e73c83da778cd032a721e96880f99a868b712be2975d08238547a5ba06c7.jpg" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/456444</a>
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T08:36:53+00:00
- 2017-05-05T08:36:53+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://gs.smuglo.li/user/25857
- safebot
-
-
-
-
-
- safebot
- safebot
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.smuglo.li,2017-05-05:noticeId=2188073:objectType=note
- New note by safebot
- #<span class="tag"><a href="https://gs.smuglo.li/tag/cheers" rel="tag">cheers</a></span> <a href="https://gs.smuglo.li/file/5099e73c83da778cd032a721e96880f99a868b712be2975d08238547a5ba06c7.jpg" title="https://gs.smuglo.li/file/5099e73c83da778cd032a721e96880f99a868b712be2975d08238547a5ba06c7.jpg" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/456444</a>
-
-
-
-
- https://gs.smuglo.li/conversation/1009429
-
-
-
-
-
- https://gs.smuglo.li/conversation/1009429
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061643:2017-05-05T09:12:50+00:00
- Favorite
- lambadalambda favorited something by moonman: @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> @<a href="https://gs.smuglo.li/user/2326" class="h-card mention" title="Dolus_McHonest">dolus</a> childhood poring over Strong's concordance and a koine Greek dictionary, fast forward to 2017 and some fuckstick who translates japanese jackoff material tells me you just need to make it sound right in English
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T09:12:50+00:00
- 2017-05-05T09:12:50+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment
- New comment by moonman
- @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> @<a href="https://gs.smuglo.li/user/2326" class="h-card mention" title="Dolus_McHonest">dolus</a> childhood poring over Strong's concordance and a koine Greek dictionary, fast forward to 2017 and some fuckstick who translates japanese jackoff material tells me you just need to make it sound right in English
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=55ead90125cd4bd4
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061696:2017-05-05T09:06:10+00:00
- Favorite
- lambadalambda favorited something by moonman: @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> <br /> <span class="greentext">> (((common era)))</span>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T09:06:10+00:00
- 2017-05-05T09:06:10+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2827918:objectType=comment
- New comment by moonman
- @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> <br /> <span class="greentext">> (((common era)))</span>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=55ead90125cd4bd4
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:note:2061673:2017-05-05T08:58:28+00:00
- Favorite
- lambadalambda favorited something by moonman: discussion is one thing but any argument I've heard over and over again for the last three decades is going to go unanswered.
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T08:58:28+00:00
- 2017-05-05T08:58:28+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2017-05-05:noticeId=2827895:objectType=note
- New note by moonman
- discussion is one thing but any argument I've heard over and over again for the last three decades is going to go unanswered.
-
-
-
-
-
-
- https://shitposter.club/conversation/1390494
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061280:2017-05-05T08:47:38+00:00
- Favorite
- lambadalambda favorited something by moonman: @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> sex is for procreation and as an expression of intimacy between commited couples, it is a sacramental act
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T08:47:38+00:00
- 2017-05-05T08:47:38+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2827561:objectType=comment
- New comment by moonman
- @<a href="https://shitposter.club/user/9655" class="h-card mention" title="Solidarity for Pigs">neimzr4luzerz</a> sex is for procreation and as an expression of intimacy between commited couples, it is a sacramental act
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=55ead90125cd4bd4
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:note:2061535:2017-05-05T08:40:55+00:00
- Favorite
- lambadalambda favorited something by fortune: What did Mickey Mouse get for Christmas?<br /> <br /> A Dan Quayle watch.<br /> <br /> -- heard from a Mike Dukakis field worker
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T08:40:55+00:00
- 2017-05-05T08:40:55+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.heldscal.la,2017-05-05:noticeId=2061535:objectType=note
- New note by fortune
- What did Mickey Mouse get for Christmas?<br /> <br /> A Dan Quayle watch.<br /> <br /> -- heard from a Mike Dukakis field worker
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=5185e5c145ee4762
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061421:2017-05-05T08:36:27+00:00
- Favorite
- lambadalambda favorited something by moonman: @<a href="https://maly.io/users/sonya" class="h-card mention" title="Sonya Mann ✅">sonya</a> banned from 4chan. you better watch ou. i'm trouble, y'hear?
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T08:36:27+00:00
- 2017-05-05T08:36:27+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2827689:objectType=comment
- New comment by moonman
- @<a href="https://maly.io/users/sonya" class="h-card mention" title="Sonya Mann ✅">sonya</a> banned from 4chan. you better watch ou. i'm trouble, y'hear?
-
-
-
-
-
-
- https://shitposter.club/conversation/1389345
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061351:2017-05-05T08:28:03+00:00
- Favorite
- lambadalambda favorited something by moonman: @<a href="https://social.heldscal.la/user/29138" class="h-card mention" title="Claes Wallin (韋嘉誠)">clacke</a> is that the sequel to Time Crisis
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T08:28:03+00:00
- 2017-05-05T08:28:03+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2827630:objectType=comment
- New comment by moonman
- @<a href="https://social.heldscal.la/user/29138" class="h-card mention" title="Claes Wallin (韋嘉誠)">clacke</a> is that the sequel to Time Crisis
-
-
-
-
-
-
- https://shitposter.club/conversation/1385528
-
-
-
-
-
-
- tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061339:2017-05-05T08:21:05+00:00
- Favorite
- lambadalambda favorited something by hardbass2k8: @<a href="https://social.heldscal.la/user/23211" class="h-card mention" title="Constance Variable">lambadalambda</a> pretty sure it's money laundering
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-05-05T08:21:05+00:00
- 2017-05-05T08:21:05+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2017-05-05:noticeId=2827617:objectType=comment
- New comment by hardbass2k8
- @<a href="https://social.heldscal.la/user/23211" class="h-card mention" title="Constance Variable">lambadalambda</a> pretty sure it's money laundering
-
-
-
-
-
-
- https://shitposter.club/conversation/1387523
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.heldscal.la,2017-05-05:noticeId=2061303:objectType=note
- New note by lambadalambda
- It's got tattoos, it's got a pierced hood<br /> It's got generation X<br /> It's got lesbians, and vitriol<br /> And sadomasochistic latex sex<br /> It's got Mighty Morphin' power brokers<br /> And Tanya Harding nude<br /> Macrobiotic lacto-vegan non-confrontational free range food<br /> It's got the handshake, peace talk, non-aggression pact<br /> A multicultural integration of segregated historical facts<br /> <br /> #<span class="tag"><a href="https://social.heldscal.la/tag/nsfw" rel="tag">nsfw</a></span> <a href="https://social.heldscal.la/file/61c13b99c92f40ec4865e7a3830da340b187e3de70d94b8da38fd2138bbede3a.jpg" title="https://social.heldscal.la/file/61c13b99c92f40ec4865e7a3830da340b187e3de70d94b8da38fd2138bbede3a.jpg" rel="nofollow external noreferrer" class="attachment" id="attachment-432199">https://social.heldscal.la/attachment/432199</a> <a href="https://social.heldscal.la/file/a88bba1a324da68ee2cfdbcd1c4cde60bd9553298244d6f81731270b71aa80df.jpg" title="https://social.heldscal.la/file/a88bba1a324da68ee2cfdbcd1c4cde60bd9553298244d6f81731270b71aa80df.jpg" rel="nofollow external noreferrer" class="attachment" id="attachment-432200">https://social.heldscal.la/attachment/432200</a> <a href="https://social.heldscal.la/file/887329a303250e73dc2eea06b1f0512fcac4b9d1b534068f03c45f00d5b21c39.jpg" title="https://social.heldscal.la/file/887329a303250e73dc2eea06b1f0512fcac4b9d1b534068f03c45f00d5b21c39.jpg" rel="nofollow external noreferrer" class="attachment" id="attachment-432201">https://social.heldscal.la/attachment/432201</a> <a href="https://social.heldscal.la/file/6d7a1ec15c1368c4c68810434d24da528606fcbccdd1da97b25affafeeb6ffda.jpg" title="https://social.heldscal.la/file/6d7a1ec15c1368c4c68810434d24da528606fcbccdd1da97b25affafeeb6ffda.jpg" rel="nofollow external noreferrer" class="attachment" id="attachment-432202">https://social.heldscal.la/attachment/432202</a> <a href="https://social.heldscal.la/file/2f55f2bb028eb9be744cc82b35a6b86b496d8c3924c700aff55a872ff11df54c.jpg" title="https://social.heldscal.la/file/2f55f2bb028eb9be744cc82b35a6b86b496d8c3924c700aff55a872ff11df54c.jpg" rel="nofollow external noreferrer" class="attachment" id="attachment-432203">https://social.heldscal.la/attachment/432203</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-05-05T08:17:08+00:00
- 2017-05-05T08:17:08+00:00
-
- tag:social.heldscal.la,2017-05-05:objectType=thread:nonce=bb6f4343036970e8
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/test/fixtures/tesla_mock/https___social.heldscal.la_api_statuses_user_timeline_29191.atom.xml b/test/fixtures/tesla_mock/https___social.heldscal.la_api_statuses_user_timeline_29191.atom.xml
deleted file mode 100644
index f70fbc695..000000000
--- a/test/fixtures/tesla_mock/https___social.heldscal.la_api_statuses_user_timeline_29191.atom.xml
+++ /dev/null
@@ -1,719 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/29191.atom
- shp timeline
- Updates from shp on social.heldscal.la!
- https://social.heldscal.la/avatar/29191-96-20170421154949.jpeg
- 2017-05-05T11:57:06+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/29191
- shp
- cofe
-
-
-
-
-
- shp
- shp
- cofe
-
- cofe
-
-
-
-
-
-
-
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-29:noticeId=1967657:objectType=note
- shp repeated a notice by lain
- RT @<a href="https://social.heldscal.la/user/37181" class="h-card u-url p-nickname mention" title="Lain Iwakura">lain</a> @<a href="https://social.heldscal.la/user/29191" class="h-card u-url p-nickname mention" title="shp">shp</a> @<a href="https://social.heldscal.la/user/23211" class="h-card u-url p-nickname mention">lambadalambda</a> cofe.
-
- http://activitystrea.ms/schema/1.0/share
- 2017-04-29T18:19:34+00:00
- 2017-04-29T18:19:34+00:00
-
- http://activitystrea.ms/schema/1.0/activity
- https://pleroma.soykaf.com/activities/43d12c05-db3f-4f3d-bee1-d676f264490c
-
- <a href="https://pleroma.soykaf.com/users/shp">@shp</a> <a href="https://social.heldscal.la/user/23211">@lambadalambda@social.heldscal.la</a> cofe.
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-29T18:14:36+00:00
- 2017-04-29T18:14:36+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://pleroma.soykaf.com/users/lain
- lain
- Test account
-
-
-
-
-
- lain
- Lain Iwakura
- Test account
-
-
-
- http://activitystrea.ms/schema/1.0/note
- https://pleroma.soykaf.com/activities/43d12c05-db3f-4f3d-bee1-d676f264490c
- New note by lain
- <a href="https://pleroma.soykaf.com/users/shp">@shp</a> <a href="https://social.heldscal.la/user/23211">@lambadalambda@social.heldscal.la</a> cofe.
-
-
-
-
- tag:social.heldscal.la,2017-04-29:objectType=thread:nonce=e0b75431888efdab
-
-
-
-
- tag:social.heldscal.la,2017-04-29:objectType=thread:nonce=e0b75431888efdab
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:subscription:29191:person:29558:2017-04-27T17:26:37+00:00
- shp (shp@social.heldscal.la)'s status on Thursday, 27-Apr-2017 17:26:37 UTC
- <a href="https://social.heldscal.la/shp">shp</a> started following <a href="https://gs.smuglo.li/kfist">KFist</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-04-27T17:26:37+00:00
- 2017-04-27T17:26:37+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://gs.smuglo.li/user/28051
- KFist
- I stream thanks to @nepfag. I also drink, shitpost, and fly planes. I visited Japan and it changed my life. Do you love your station?
-
-
-
-
-
- kfist
- KFist
- I stream thanks to @nepfag. I also drink, shitpost, and fly planes. I visited Japan and it changed my life. Do you love your station?
-
- homepage
- http://smuglo.li:8000/stream.m3u
- true
-
-
-
- tag:social.heldscal.la,2017-04-27:objectType=thread:nonce=f766240d13ed9c2e
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:noticeId=1933030:objectType=note
- shp repeated a notice by shpbot
- RT @<a href="https://gs.archae.me/user/4687" class="h-card u-url p-nickname mention" title="shpbot">shpbot</a> >QuakeC
-
- http://activitystrea.ms/schema/1.0/share
- 2017-04-27T17:21:10+00:00
- 2017-04-27T17:21:10+00:00
-
- http://activitystrea.ms/schema/1.0/activity
- tag:gs.archae.me,2017-04-27:noticeId=760881:objectType=note
-
- <span class='greentext'>>QuakeC</span>
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-27T17:15:13+00:00
- 2017-04-27T17:15:13+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://gs.archae.me/user/4687
- shpbot
-
-
-
-
-
- shpbot
- shpbot
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.archae.me,2017-04-27:noticeId=760881:objectType=note
- New note by shpbot
- <span class='greentext'>>QuakeC</span>
-
-
-
-
- https://gs.archae.me/conversation/318362
-
-
-
-
- https://gs.archae.me/conversation/318362
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:subscription:29191:person:23226:2017-04-27T17:20:48+00:00
- shp (shp@social.heldscal.la)'s status on Thursday, 27-Apr-2017 17:20:48 UTC
- <a href="https://social.heldscal.la/shp">shp</a> started following <a href="http://quitter.se/taknamay">Internet Turtle Ⓐ 🏴 ✅</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-04-27T17:20:48+00:00
- 2017-04-27T17:20:48+00:00
-
- http://activitystrea.ms/schema/1.0/person
- http://quitter.se/user/115823
- Internet Turtle Ⓐ 🏴 ✅
- Scheme programmer, Novice esperantist, Spiritual naturalist - Will listen to your problems for free - XMPP: DarkDungeons94 at chatme.im
-
-
-
-
-
- taknamay
- Internet Turtle Ⓐ 🏴 ✅
- Scheme programmer, Novice esperantist, Spiritual naturalist - Will listen to your problems for free - XMPP: DarkDungeons94 at chatme.im
-
- New Jersey, United States
-
-
- homepage
- https://quitter.se/taknamay
- true
-
-
-
- tag:social.heldscal.la,2017-04-27:objectType=thread:nonce=a66b1fb22020c152
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:subscription:29191:person:29302:2017-04-27T17:20:33+00:00
- shp (shp@social.heldscal.la)'s status on Thursday, 27-Apr-2017 17:20:33 UTC
- <a href="https://social.heldscal.la/shp">shp</a> started following <a href="https://icosahedron.website/@Trev">Chillidan Stormrave</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-04-27T17:20:33+00:00
- 2017-04-27T17:20:33+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://icosahedron.website/users/Trev
- Trev Prime
- web tech, music, ethics. radical individualist. kinda queer. love thy neighbor. always open for conversation.
-
-
-
-
-
- trev
- Trev Prime
- web tech, music, ethics. radical individualist. kinda queer. love thy neighbor. always open for conversation.
-
-
- tag:social.heldscal.la,2017-04-27:objectType=thread:nonce=781c05bd64ad9520
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:subscription:29191:person:29367:2017-04-27T17:20:27+00:00
- shp (shp@social.heldscal.la)'s status on Thursday, 27-Apr-2017 17:20:27 UTC
- <a href="https://social.heldscal.la/shp">shp</a> started following <a href="https://gs.kawa-kun.com/aya">射命丸 文</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-04-27T17:20:27+00:00
- 2017-04-27T17:20:27+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://gs.kawa-kun.com/user/4885
- 射命丸 文
- Traditional Reporter of Fantasy
-
-
-
-
-
- aya
- 射命丸 文
- Traditional Reporter of Fantasy
-
- Gensōkyō
-
-
- homepage
- https://danbooru.donmai.us
- true
-
-
-
- tag:social.heldscal.la,2017-04-27:objectType=thread:nonce=5921da7a934e47ca
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:subscription:29191:person:27773:2017-04-27T17:20:18+00:00
- shp (shp@social.heldscal.la)'s status on Thursday, 27-Apr-2017 17:20:18 UTC
- <a href="https://social.heldscal.la/shp">shp</a> started following <a href="https://gs.smuglo.li/japananon">JapanAnon</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-04-27T17:20:18+00:00
- 2017-04-27T17:20:18+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://gs.smuglo.li/user/27299
- JapanAnon
- 匿名でしていてね!
-
-
-
-
-
- japananon
- JapanAnon
- 匿名でしていてね!
-
- ワイヤード
-
-
- homepage
- http://www.anonymous-japan.org
- true
-
-
-
- tag:social.heldscal.la,2017-04-27:objectType=thread:nonce=ae3d819865886cba
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:subscription:29191:person:36560:2017-04-27T17:19:30+00:00
- shp (shp@social.heldscal.la)'s status on Thursday, 27-Apr-2017 17:19:30 UTC
- <a href="https://social.heldscal.la/shp">shp</a> started following <a href="https://shitposter.club/wareya">wareya</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-04-27T17:19:30+00:00
- 2017-04-27T17:19:30+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://shitposter.club/user/15439
- wareya
- Who are you to defy such a perfect being that is the machine? 日本語難しいけど頑張るぜ github.com/wareya wareya.moe Short: reya or war, never "ware"
-
-
-
-
-
- wareya
- wareya
- Who are you to defy such a perfect being that is the machine? 日本語難しいけど頑張るぜ github.com/wareya wareya.moe Short: reya or war, never "ware"
-
-
- tag:social.heldscal.la,2017-04-27:objectType=thread:nonce=bd88a3cd20b5a418
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:subscription:29191:person:41176:2017-04-27T17:19:21+00:00
- shp (shp@social.heldscal.la)'s status on Thursday, 27-Apr-2017 17:19:21 UTC
- <a href="https://social.heldscal.la/shp">shp</a> started following <a href="https://hakui.club/takeshitakenji">竹下憲二 (白)</a>.
-
- http://activitystrea.ms/schema/1.0/follow
- 2017-04-27T17:19:21+00:00
- 2017-04-27T17:19:21+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://hakui.club/user/6
- 竹下憲二 (白)
- Oh boy.
-
-
-
-
-
- takeshitakenji
- 竹下憲二 (白)
- Oh boy.
-
- Seattle, WA
-
-
- homepage
- http://gs.kawa-kun.com
- true
-
-
-
- tag:social.heldscal.la,2017-04-27:objectType=thread:nonce=b139a673deba6963
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:fave:29191:note:1932205:2017-04-27T17:17:46+00:00
- Favorite
- shp favorited something by dolus: Looks like Merry is pussing out and caving to pressure. Sad. <a href="https://gs.smuglo.li/file/23e37de3c321248d3f322d8ec042372914568ab4c9431a94e568a61b8146587f.png" title="https://gs.smuglo.li/file/23e37de3c321248d3f322d8ec042372914568ab4c9431a94e568a61b8146587f.png" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432294</a> <a href="https://gs.smuglo.li/file/e5a9549a19986d59d51750090910f47c186787adf02b2b6ac58df37556887297.png" title="https://gs.smuglo.li/file/e5a9549a19986d59d51750090910f47c186787adf02b2b6ac58df37556887297.png" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432295</a> <a href="https://gs.smuglo.li/file/2fdfabbc8ab0b8dc135903a8c48c29b440d1f97446b98ced4ad14a54d3b5d41f.png" title="https://gs.smuglo.li/file/2fdfabbc8ab0b8dc135903a8c48c29b440d1f97446b98ced4ad14a54d3b5d41f.png" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432296</a> <a href="https://gs.smuglo.li/file/af605d7c6fe3a8c26c6d334c2a8e0005f7e86a266f14a5b3755e7d3ac4e226de.png" title="https://gs.smuglo.li/file/af605d7c6fe3a8c26c6d334c2a8e0005f7e86a266f14a5b3755e7d3ac4e226de.png" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432297</a>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-04-27T17:17:46+00:00
- 2017-04-27T17:17:46+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.smuglo.li,2017-04-27:noticeId=2065465:objectType=note
- New note by dolus
- Looks like Merry is pussing out and caving to pressure. Sad. <a href="https://gs.smuglo.li/file/23e37de3c321248d3f322d8ec042372914568ab4c9431a94e568a61b8146587f.png" title="https://gs.smuglo.li/file/23e37de3c321248d3f322d8ec042372914568ab4c9431a94e568a61b8146587f.png" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432294</a> <a href="https://gs.smuglo.li/file/e5a9549a19986d59d51750090910f47c186787adf02b2b6ac58df37556887297.png" title="https://gs.smuglo.li/file/e5a9549a19986d59d51750090910f47c186787adf02b2b6ac58df37556887297.png" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432295</a> <a href="https://gs.smuglo.li/file/2fdfabbc8ab0b8dc135903a8c48c29b440d1f97446b98ced4ad14a54d3b5d41f.png" title="https://gs.smuglo.li/file/2fdfabbc8ab0b8dc135903a8c48c29b440d1f97446b98ced4ad14a54d3b5d41f.png" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432296</a> <a href="https://gs.smuglo.li/file/af605d7c6fe3a8c26c6d334c2a8e0005f7e86a266f14a5b3755e7d3ac4e226de.png" title="https://gs.smuglo.li/file/af605d7c6fe3a8c26c6d334c2a8e0005f7e86a266f14a5b3755e7d3ac4e226de.png" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432297</a>
-
-
-
-
-
-
- https://gs.smuglo.li/conversation/927473
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:fave:29191:note:1932492:2017-04-27T17:13:55+00:00
- Favorite
- shp favorited something by zemichi: <a href="https://gs.smuglo.li/file/1d45ea4ffc95f15037f361b56ad6b89f8451b70ad1ff7a03b7bb0345b8e2227c.jpg" title="https://gs.smuglo.li/file/1d45ea4ffc95f15037f361b56ad6b89f8451b70ad1ff7a03b7bb0345b8e2227c.jpg" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432344</a><br /> that's a lot of loli
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-04-27T17:13:55+00:00
- 2017-04-27T17:13:55+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.smuglo.li,2017-04-27:noticeId=2065713:objectType=note
- New note by zemichi
- <a href="https://gs.smuglo.li/file/1d45ea4ffc95f15037f361b56ad6b89f8451b70ad1ff7a03b7bb0345b8e2227c.jpg" title="https://gs.smuglo.li/file/1d45ea4ffc95f15037f361b56ad6b89f8451b70ad1ff7a03b7bb0345b8e2227c.jpg" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432344</a><br /> that's a lot of loli
-
-
-
-
-
-
- https://gs.smuglo.li/conversation/927673
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:fave:29191:note:1932559:2017-04-27T17:12:46+00:00
- Favorite
- shp favorited something by gsimg: <a href="https://gs.kawa-kun.com/file/3435c5cafda46f31cad5abb5837b3521b7b458198507073a496f4d10bad3633b.jpg" title="https://gs.kawa-kun.com/file/3435c5cafda46f31cad5abb5837b3521b7b458198507073a496f4d10bad3633b.jpg" rel="nofollow noreferrer" class="attachment">https://gs.kawa-kun.com/file/3435c5cafda46f31cad5abb5837b3521b7b458198507073a496f4d10bad3633b.jpg</a> #<span class="tag"><a href="https://gs.kawa-kun.com/tag/nsfw" rel="tag">nsfw</a></span>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-04-27T17:12:46+00:00
- 2017-04-27T17:12:46+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.kawa-kun.com,2017-04-27:noticeId=1608309:objectType=note
- New note by gsimg
- <a href="https://gs.kawa-kun.com/file/3435c5cafda46f31cad5abb5837b3521b7b458198507073a496f4d10bad3633b.jpg" title="https://gs.kawa-kun.com/file/3435c5cafda46f31cad5abb5837b3521b7b458198507073a496f4d10bad3633b.jpg" rel="nofollow noreferrer" class="attachment">https://gs.kawa-kun.com/file/3435c5cafda46f31cad5abb5837b3521b7b458198507073a496f4d10bad3633b.jpg</a> #<span class="tag"><a href="https://gs.kawa-kun.com/tag/nsfw" rel="tag">nsfw</a></span>
-
-
-
-
-
-
- https://gs.kawa-kun.com/conversation/690817
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:fave:29191:note:1932601:2017-04-27T17:12:28+00:00
- Favorite
- shp favorited something by zemichi: <a href="https://gs.smuglo.li/file/5d9114fafea7b9866c9d852bcfeaf66aade65ae26149758346bc5ade7e3fa8f0.jpg" title="https://gs.smuglo.li/file/5d9114fafea7b9866c9d852bcfeaf66aade65ae26149758346bc5ade7e3fa8f0.jpg" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432372</a>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-04-27T17:12:28+00:00
- 2017-04-27T17:12:28+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.smuglo.li,2017-04-27:noticeId=2065821:objectType=note
- New note by zemichi
- <a href="https://gs.smuglo.li/file/5d9114fafea7b9866c9d852bcfeaf66aade65ae26149758346bc5ade7e3fa8f0.jpg" title="https://gs.smuglo.li/file/5d9114fafea7b9866c9d852bcfeaf66aade65ae26149758346bc5ade7e3fa8f0.jpg" rel="nofollow noreferrer" class="attachment">https://gs.smuglo.li/attachment/432372</a>
-
-
-
-
-
-
- https://gs.smuglo.li/conversation/927760
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-27:noticeId=1932867:objectType=note
- shp repeated a notice by shpbot
- RT @<a href="https://gs.archae.me/user/4687" class="h-card u-url p-nickname mention" title="shpbot">shpbot</a> <a href="https://shitposter.club/file/cbf7fbbee1127a9870e871305ca7de70f1eb1bbb79ffe5b3b0f33e37514d14d8.jpg" title="https://shitposter.club/file/cbf7fbbee1127a9870e871305ca7de70f1eb1bbb79ffe5b3b0f33e37514d14d8.jpg" rel="nofollow external noreferrer" class="attachment" id="attachment-237676">https://shitposter.club/file/cbf7fbbee1127a9870e871305ca7de70f1eb1bbb79ffe5b3b0f33e37514d14d8.jpg</a> #<span class="tag"><a href="https://social.heldscal.la/tag/2hu" rel="tag">2hu</a></span> #<span class="tag"><a href="https://social.heldscal.la/tag/ordinarymagician" rel="tag">ordinarymagician</a></span> :thinking: <a href="https://shitposter.club/file/abf3f82d9ce28d2293d858af26c75bb5d4fdd091c0d90ca7bc72ea7efba220e4.jpg" title="https://shitposter.club/file/abf3f82d9ce28d2293d858af26c75bb5d4fdd091c0d90ca7bc72ea7efba220e4.jpg" rel="nofollow external noreferrer" class="attachment" id="attachment-312306">https://shitposter.club/file/abf3f82d9ce28d2293d858af26c75bb5d4fdd091c0d90ca7bc72ea7efba220e4.jpg</a>
-
- http://activitystrea.ms/schema/1.0/share
- 2017-04-27T17:11:35+00:00
- 2017-04-27T17:11:35+00:00
-
- http://activitystrea.ms/schema/1.0/activity
- tag:gs.archae.me,2017-04-27:noticeId=760830:objectType=note
-
- <a href="https://shitposter.club/file/cbf7fbbee1127a9870e871305ca7de70f1eb1bbb79ffe5b3b0f33e37514d14d8.jpg" title="https://shitposter.club/file/cbf7fbbee1127a9870e871305ca7de70f1eb1bbb79ffe5b3b0f33e37514d14d8.jpg" rel="nofollow noreferrer" class="attachment">https://shitposter.club/file/cbf7fbbee1127a9870e871305ca7de70f1eb1bbb79ffe5b3b0f33e37514d14d8.jpg</a> #<span class="tag"><a href="https://gs.archae.me/tag/2hu" rel="tag">2hu</a></span> #<span class="tag"><a href="https://gs.archae.me/tag/ordinarymagician" rel="tag">ordinarymagician</a></span> :thinking: <a href="https://shitposter.club/file/abf3f82d9ce28d2293d858af26c75bb5d4fdd091c0d90ca7bc72ea7efba220e4.jpg" title="https://shitposter.club/file/abf3f82d9ce28d2293d858af26c75bb5d4fdd091c0d90ca7bc72ea7efba220e4.jpg" rel="nofollow noreferrer" class="attachment">https://shitposter.club/file/abf3f82d9ce28d2293d858af26c75bb5d4fdd091c0d90ca7bc72ea7efba220e4.jpg</a>
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-27T17:00:08+00:00
- 2017-04-27T17:00:08+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://gs.archae.me/user/4687
- shpbot
-
-
-
-
-
- shpbot
- shpbot
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.archae.me,2017-04-27:noticeId=760830:objectType=note
- New note by shpbot
- <a href="https://shitposter.club/file/cbf7fbbee1127a9870e871305ca7de70f1eb1bbb79ffe5b3b0f33e37514d14d8.jpg" title="https://shitposter.club/file/cbf7fbbee1127a9870e871305ca7de70f1eb1bbb79ffe5b3b0f33e37514d14d8.jpg" rel="nofollow noreferrer" class="attachment">https://shitposter.club/file/cbf7fbbee1127a9870e871305ca7de70f1eb1bbb79ffe5b3b0f33e37514d14d8.jpg</a> #<span class="tag"><a href="https://gs.archae.me/tag/2hu" rel="tag">2hu</a></span> #<span class="tag"><a href="https://gs.archae.me/tag/ordinarymagician" rel="tag">ordinarymagician</a></span> :thinking: <a href="https://shitposter.club/file/abf3f82d9ce28d2293d858af26c75bb5d4fdd091c0d90ca7bc72ea7efba220e4.jpg" title="https://shitposter.club/file/abf3f82d9ce28d2293d858af26c75bb5d4fdd091c0d90ca7bc72ea7efba220e4.jpg" rel="nofollow noreferrer" class="attachment">https://shitposter.club/file/abf3f82d9ce28d2293d858af26c75bb5d4fdd091c0d90ca7bc72ea7efba220e4.jpg</a>
-
-
-
-
- https://gs.archae.me/conversation/318317
-
-
-
-
-
-
- https://gs.archae.me/conversation/318317
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.heldscal.la,2017-04-27:noticeId=1932815:objectType=note
- New note by shp
- federation issues with SPC atm it seems
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-27T17:08:55+00:00
- 2017-04-27T17:08:55+00:00
-
- tag:social.heldscal.la,2017-04-27:objectType=thread:nonce=645a13c841f51769
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-26:fave:29191:note:1907285:2017-04-26T06:59:07+00:00
- Favorite
- shp favorited something by lambadalambda: Is this the most offensive video on the net? <a href="https://social.heldscal.la/file/4c34bfb81a8155c265031bc48f7e69c29eb0d2941c57daf63f80e17b0e2e5f47.webm" title="https://social.heldscal.la/file/4c34bfb81a8155c265031bc48f7e69c29eb0d2941c57daf63f80e17b0e2e5f47.webm" rel="nofollow noreferrer" class="attachment">https://social.heldscal.la/attachment/402251</a>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-04-26T06:59:07+00:00
- 2017-04-26T06:59:07+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.heldscal.la,2017-04-26:noticeId=1907285:objectType=note
- New note by lambadalambda
- Is this the most offensive video on the net? <a href="https://social.heldscal.la/file/4c34bfb81a8155c265031bc48f7e69c29eb0d2941c57daf63f80e17b0e2e5f47.webm" title="https://social.heldscal.la/file/4c34bfb81a8155c265031bc48f7e69c29eb0d2941c57daf63f80e17b0e2e5f47.webm" rel="nofollow external noreferrer" class="attachment" id="attachment-402251">https://social.heldscal.la/attachment/402251</a>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-26:objectType=thread:nonce=07b02e1328f456af
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-26:noticeId=1907951:objectType=note
- shp repeated a notice by shpbot
- RT @<a href="https://gs.archae.me/user/4687" class="h-card u-url p-nickname mention" title="shpbot">shpbot</a> <a href="https://shitposter.club/file/718db06b564841331c72f9df767f8c9459e20c4dddbf0d4e61cd08ecbee7739d.jpg" title="https://shitposter.club/file/718db06b564841331c72f9df767f8c9459e20c4dddbf0d4e61cd08ecbee7739d.jpg" rel="nofollow external noreferrer" class="attachment" id="attachment-346198">https://shitposter.club/file/718db06b564841331c72f9df767f8c9459e20c4dddbf0d4e61cd08ecbee7739d.jpg</a>
-
- http://activitystrea.ms/schema/1.0/share
- 2017-04-26T06:58:19+00:00
- 2017-04-26T06:58:19+00:00
-
- http://activitystrea.ms/schema/1.0/activity
- tag:gs.archae.me,2017-04-26:noticeId=752596:objectType=note
-
- <a href="https://shitposter.club/file/718db06b564841331c72f9df767f8c9459e20c4dddbf0d4e61cd08ecbee7739d.jpg" title="https://shitposter.club/file/718db06b564841331c72f9df767f8c9459e20c4dddbf0d4e61cd08ecbee7739d.jpg" rel="nofollow noreferrer" class="attachment">https://shitposter.club/file/718db06b564841331c72f9df767f8c9459e20c4dddbf0d4e61cd08ecbee7739d.jpg</a>
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-26T06:15:07+00:00
- 2017-04-26T06:15:07+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://gs.archae.me/user/4687
- shpbot
-
-
-
-
-
- shpbot
- shpbot
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:gs.archae.me,2017-04-26:noticeId=752596:objectType=note
- New note by shpbot
- <a href="https://shitposter.club/file/718db06b564841331c72f9df767f8c9459e20c4dddbf0d4e61cd08ecbee7739d.jpg" title="https://shitposter.club/file/718db06b564841331c72f9df767f8c9459e20c4dddbf0d4e61cd08ecbee7739d.jpg" rel="nofollow noreferrer" class="attachment">https://shitposter.club/file/718db06b564841331c72f9df767f8c9459e20c4dddbf0d4e61cd08ecbee7739d.jpg</a>
-
-
-
-
- https://gs.archae.me/conversation/314010
-
-
-
-
- https://gs.archae.me/conversation/314010
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-26:fave:29191:note:1907341:2017-04-26T06:58:16+00:00
- Favorite
- shp favorited something by moonman: <a href="https://shitposter.club/file/1377b0894e983599c11e739e406243cabed9f8af7961a2550ecaf97e32de8e60.jpg" title="https://shitposter.club/file/1377b0894e983599c11e739e406243cabed9f8af7961a2550ecaf97e32de8e60.jpg" class="attachment" rel="nofollow">https://shitposter.club/attachment/630989</a>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-04-26T06:58:16+00:00
- 2017-04-26T06:58:16+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2017-04-26:noticeId=2681941:objectType=note
- New note by moonman
- <a href="https://shitposter.club/file/1377b0894e983599c11e739e406243cabed9f8af7961a2550ecaf97e32de8e60.jpg" title="https://shitposter.club/file/1377b0894e983599c11e739e406243cabed9f8af7961a2550ecaf97e32de8e60.jpg" class="attachment" rel="nofollow">https://shitposter.club/attachment/630989</a>
-
-
-
-
-
-
- https://shitposter.club/conversation/1300990
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-26:fave:29191:comment:1907412:2017-04-26T06:57:56+00:00
- Favorite
- shp favorited something by lambadalambda: @<a href="https://gs.smuglo.li/user/2" class="h-card u-url p-nickname mention" title="nepfag">nepfag</a> <a href="https://cherubini.casa/why-i-shut-down-wizards-town-and-left-mastodon-6d4e631346b3?source=linkShare-89c2f851e979-1493184822&gi=a6a47c5466a0" title="https://cherubini.casa/why-i-shut-down-wizards-town-and-left-mastodon-6d4e631346b3?source=linkShare-89c2f851e979-1493184822&gi=a6a47c5466a0" rel="nofollow noreferrer" class="attachment">https://social.heldscal.la/url/402273</a>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2017-04-26T06:57:56+00:00
- 2017-04-26T06:57:56+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- tag:social.heldscal.la,2017-04-26:noticeId=1907412:objectType=comment
- New comment by lambadalambda
- @<a href="https://gs.smuglo.li/user/2" class="h-card u-url p-nickname mention" title="nepfag">nepfag</a> <a href="https://cherubini.casa/why-i-shut-down-wizards-town-and-left-mastodon-6d4e631346b3?source=linkShare-89c2f851e979-1493184822&gi=a6a47c5466a0" title="https://cherubini.casa/why-i-shut-down-wizards-town-and-left-mastodon-6d4e631346b3?source=linkShare-89c2f851e979-1493184822&gi=a6a47c5466a0" rel="nofollow external noreferrer" class="attachment" id="attachment-402273">https://social.heldscal.la/url/402273</a>
-
-
-
-
-
-
- tag:social.heldscal.la,2017-04-26:objectType=thread:nonce=85c21eda7aaa7259
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:social.heldscal.la,2017-04-26:noticeId=1907942:objectType=note
- New note by shp
- #<span class="tag"><a href="https://social.heldscal.la/tag/cofe" rel="tag">cofe</a></span> time my friends <a href="https://social.heldscal.la/file/ec254b45b3a86ff74bc08bc7e065cb681d77cf7d4cedc9cdcf59e16adf311da3.png" title="https://social.heldscal.la/file/ec254b45b3a86ff74bc08bc7e065cb681d77cf7d4cedc9cdcf59e16adf311da3.png" rel="nofollow external noreferrer" class="attachment" id="attachment-402381">https://social.heldscal.la/attachment/402381</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2017-04-26T06:57:18+00:00
- 2017-04-26T06:57:18+00:00
-
- tag:social.heldscal.la,2017-04-26:objectType=thread:nonce=9c9d9373bccfaf70
-
-
-
-
-
-
-
-
diff --git a/test/fixtures/tesla_mock/sakamoto.atom b/test/fixtures/tesla_mock/sakamoto.atom
deleted file mode 100644
index 648946795..000000000
--- a/test/fixtures/tesla_mock/sakamoto.atom
+++ /dev/null
@@ -1 +0,0 @@
-http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://social.sakamoto.gq/objects/0ccc1a2c-66b0-4305-b23a-7f7f2b040056New note by eal<a href='https://shitposter.club/user/5381'>@shpuld</a> <a href='https://pleroma.hjkos.com/users/hj'>@hj</a> IM NOT GAY DAD2017-08-04T12:51:26.130592Z2017-08-04T12:51:26.130592Zhttps://pleroma.hjkos.com/contexts/53093c74-2100-4bf4-aac6-66d1973d03efhttps://social.sakamoto.gq/users/ealhttp://activitystrea.ms/schema/1.0/personhttps://social.sakamoto.gq/users/ealeal坂本(・ヮ・)eal
\ No newline at end of file
diff --git a/test/fixtures/tesla_mock/sakamoto_eal_feed.atom b/test/fixtures/tesla_mock/sakamoto_eal_feed.atom
deleted file mode 100644
index 9340d9038..000000000
--- a/test/fixtures/tesla_mock/sakamoto_eal_feed.atom
+++ /dev/null
@@ -1 +0,0 @@
-https://social.sakamoto.gq/users/eal/feed.atomeal's timeline2017-08-04T14:19:12.683854https://social.sakamoto.gq/users/ealhttp://activitystrea.ms/schema/1.0/personhttps://social.sakamoto.gq/users/ealeal坂本(・ヮ・)ealhttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://social.sakamoto.gq/objects/b79a1721-23f3-45a5-9610-adb08c2afae5New note by ealHonestly, I like all smileys that are not emoji.2017-08-04T14:19:12.675999Z2017-08-04T14:19:12.675999Zhttps://social.sakamoto.gq/contexts/e05ede92-8db9-4963-8b8e-e71a5797d68fhttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://social.sakamoto.gq/objects/45475bf3-2dfc-4d9e-8eae-1f4f86f48982New note by ealThen again, I like all smileys/emoticons that are not emoji.<br>2017-08-04T14:19:10.113373Z2017-08-04T14:19:10.113373Zhttps://social.sakamoto.gq/contexts/852d1605-4dcb-4ba7-9ba4-dfc37ed62fbchttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://social.sakamoto.gq/objects/8f8fd6d6-cc63-40c6-a5d0-1c0e4f919368New note by ealI love the russian-style smiley.2017-08-04T14:18:30.478552Z2017-08-04T14:18:30.478552Zhttps://social.sakamoto.gq/contexts/852d1605-4dcb-4ba7-9ba4-dfc37ed62fbchttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/6e69df95-f2ad-4b8e-af4a-e93ff93d64e1eal started following https://cybre.space/users/0x3Feal started following https://cybre.space/users/0x3F2017-08-04T14:17:24.942193Z2017-08-04T14:17:24.942193Zhttp://activitystrea.ms/schema/1.0/personhttps://cybre.space/users/0x3Fhttps://cybre.space/users/0x3Fhttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/54c5e260-0185-4267-a2a6-f5dd9c76c2c9eal started following https://niu.moe/users/ryeeal started following https://niu.moe/users/rye2017-08-04T14:16:35.604739Z2017-08-04T14:16:35.604739Zhttp://activitystrea.ms/schema/1.0/personhttps://niu.moe/users/ryehttps://niu.moe/users/ryehttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/092ca863-19a8-416c-85d7-d3f23b3c0203eal started following https://mastodon.xyz/users/rafudesueal started following https://mastodon.xyz/users/rafudesu2017-08-04T14:16:10.993429Z2017-08-04T14:16:10.993429Zhttp://activitystrea.ms/schema/1.0/personhttps://mastodon.xyz/users/rafudesuhttps://mastodon.xyz/users/rafudesuhttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/be5cf702-b127-423b-a6be-5f78f01a4289eal started following https://gs.kawa-kun.com/user/2eal started following https://gs.kawa-kun.com/user/22017-08-04T14:15:41.804611Z2017-08-04T14:15:41.804611Zhttp://activitystrea.ms/schema/1.0/personhttps://gs.kawa-kun.com/user/2https://gs.kawa-kun.com/user/2http://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/4951e2a1-9bae-4e87-8e98-e6d2f8a52338eal started following https://gs.kawa-kun.com/user/4885eal started following https://gs.kawa-kun.com/user/48852017-08-04T14:15:00.135352Z2017-08-04T14:15:00.135352Zhttp://activitystrea.ms/schema/1.0/personhttps://gs.kawa-kun.com/user/4885https://gs.kawa-kun.com/user/4885http://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/cadf8745-b9ee-4f6c-af32-bfddb70e4607eal started following https://mastodon.social/users/Murassaeal started following https://mastodon.social/users/Murassa2017-08-04T14:14:36.339560Z2017-08-04T14:14:36.339560Zhttp://activitystrea.ms/schema/1.0/personhttps://mastodon.social/users/Murassahttps://mastodon.social/users/Murassahttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/a52c9aab-f0e6-4ccb-8dd3-9f417e72a41ceal started following https://mastodon.social/users/rysiekeal started following https://mastodon.social/users/rysiek2017-08-04T14:13:04.061572Z2017-08-04T14:13:04.061572Zhttp://activitystrea.ms/schema/1.0/personhttps://mastodon.social/users/rysiekhttps://mastodon.social/users/rysiekhttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/738bc887-4cca-4b36-8c86-2b54d4c54732eal started following https://mastodon.hasameli.com/users/munineal started following https://mastodon.hasameli.com/users/munin2017-08-04T14:12:10.514155Z2017-08-04T14:12:10.514155Zhttp://activitystrea.ms/schema/1.0/personhttps://mastodon.hasameli.com/users/muninhttps://mastodon.hasameli.com/users/muninhttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/dc66ad5a-b776-4180-a8aa-e4c1bf7cb703eal started following https://cybre.space/users/nightpooleal started following https://cybre.space/users/nightpool2017-08-04T14:11:16.046148Z2017-08-04T14:11:16.046148Zhttp://activitystrea.ms/schema/1.0/personhttps://cybre.space/users/nightpoolhttps://cybre.space/users/nightpoolhttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://social.sakamoto.gq/objects/9c5c00d7-3ce4-4c11-b965-dc5c2bda86c5New note by eal<a href='https://mastodon.zombocloud.com/users/staticsafe'>@staticsafe</a> privet )))2017-08-04T14:10:08.812247Z2017-08-04T14:10:08.812247Zhttps://social.sakamoto.gq/contexts/12a33823-0327-4c1c-a591-850ea79331b5http://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/49798053-1f40-4a71-ad33-106e90630863eal started following https://social.homunyan.com/users/animeirleal started following https://social.homunyan.com/users/animeirl2017-08-04T14:09:44.904792Z2017-08-04T14:09:44.904792Zhttp://activitystrea.ms/schema/1.0/personhttps://social.homunyan.com/users/animeirlhttps://social.homunyan.com/users/animeirlhttp://activitystrea.ms/schema/1.0/favoritehttps://social.sakamoto.gq/activities/2d83a1c5-70a6-45d3-9b84-59d6a70fbb17New favorite by ealeal favorited something2017-08-04T14:07:27.210044Z2017-08-04T14:07:27.210044Zhttp://activitystrea.ms/schema/1.0/notehttps://pleroma.soykaf.com/objects/b831e52f-4ed4-438e-95b4-888897f64f09https://pleroma.hjkos.com/contexts/3ed48205-1e72-4e19-a618-89a0d2ca811ehttp://activitystrea.ms/schema/1.0/favoritehttps://social.sakamoto.gq/activities/06d28bed-544a-496b-8414-1c6d439273b5New favorite by ealeal favorited something2017-08-04T14:05:37.280200Z2017-08-04T14:05:37.280200Zhttp://activitystrea.ms/schema/1.0/notetag:toot-lab.reclaim.technology,2017-08-04:objectId=1166030:objectType=Statustag:p2px.me,2017-08-04:objectType=thread:nonce=f8bfc4d13db6ce91http://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/72bf19d4-9ad4-4b2f-9cd0-f0d70f4e931beal started following https://mstdn.jp/users/nullkaleal started following https://mstdn.jp/users/nullkal2017-08-04T14:05:04.148904Z2017-08-04T14:05:04.148904Zhttp://activitystrea.ms/schema/1.0/personhttps://mstdn.jp/users/nullkalhttps://mstdn.jp/users/nullkalhttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://social.sakamoto.gq/objects/b0e89515-7621-4e09-b23d-83e192324107New note by eal<a href='https://p2px.me/user/1'>@stitchxd</a> test also2017-08-04T14:04:38.699051Z2017-08-04T14:04:38.699051Ztag:p2px.me,2017-08-04:objectType=thread:nonce=f8bfc4d13db6ce91http://activitystrea.ms/schema/1.0/favoritehttps://social.sakamoto.gq/activities/d8d2006b-6b23-45d6-ba27-39d27587777dNew favorite by ealeal favorited something2017-08-04T14:04:32.106626Z2017-08-04T14:04:32.106626Zhttp://activitystrea.ms/schema/1.0/notetag:p2px.me,2017-08-04:noticeId=222109:objectType=notetag:p2px.me,2017-08-04:objectType=thread:nonce=f8bfc4d13db6ce91http://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://social.sakamoto.gq/activities/cb9db95d-ec27-41fa-bebd-5375fc13acb9eal started following https://mastodon.social/users/Gargroneal started following https://mastodon.social/users/Gargron2017-08-04T14:04:04.325531Z2017-08-04T14:04:04.325531Zhttp://activitystrea.ms/schema/1.0/personhttps://mastodon.social/users/Gargronhttps://mastodon.social/users/Gargron
\ No newline at end of file
diff --git a/test/fixtures/tesla_mock/shp@pleroma.soykaf.com.feed b/test/fixtures/tesla_mock/shp@pleroma.soykaf.com.feed
deleted file mode 100644
index b24ef7ab6..000000000
--- a/test/fixtures/tesla_mock/shp@pleroma.soykaf.com.feed
+++ /dev/null
@@ -1 +0,0 @@
-https://pleroma.soykaf.com/users/shp/feed.atomshp's timeline2017-09-14T08:31:48.911686https://pleroma.soykaf.com/users/shphttp://activitystrea.ms/schema/1.0/personhttps://pleroma.soykaf.com/users/shpshpshpcofeshphttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://pleroma.soykaf.com/activities/0b5f5ef2-020a-4f9e-a92b-a2bf21224644shp started following https://pleroma.soykaf.com/users/goozshp started following https://pleroma.soykaf.com/users/gooz2017-09-14T08:31:48.911226Z2017-09-14T08:31:48.911226Zhttp://activitystrea.ms/schema/1.0/personhttps://pleroma.soykaf.com/users/goozhttps://pleroma.soykaf.com/users/goozhttp://activitystrea.ms/schema/1.0/activityhttp://activitystrea.ms/schema/1.0/followhttps://pleroma.soykaf.com/activities/d928b7f7-dc10-478c-859b-cd604770da60shp started following https://niu.moe/users/xiaoyongmaoshp started following https://niu.moe/users/xiaoyongmao2017-09-14T08:16:52.674253Z2017-09-14T08:16:52.674253Zhttp://activitystrea.ms/schema/1.0/personhttps://niu.moe/users/xiaoyongmaohttps://niu.moe/users/xiaoyongmaohttp://activitystrea.ms/schema/1.0/favoritehttps://pleroma.soykaf.com/activities/3f5089b3-f1e5-47b6-8bfe-a9c4a860e724New favorite by shpshp favorited something2017-09-14T08:12:18.213055Z2017-09-14T08:12:18.213055Zhttp://activitystrea.ms/schema/1.0/notehttps://mastodon.xyz/users/Azurolu/statuses/8346804tag:mastodon.xyz,2017-09-14:objectId=3669709:objectType=Conversationhttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/0def9b19-6b0f-44e0-96b3-543fa06a4010New note by shp<a href='https://niu.moe/users/Pasty'>@Pasty</a> I love the peach<br><a href="https://pleroma.soykaf.com/media/7e8bd209-dbd4-481a-a62c-d302d68df16d/__hinanawi_tenshi_touhou_drawn_by_e_o__8c6824f52dd494f6026607570179265f.jpg" class='attachment'>__hinanawi_tenshi_touhou_drawn_…</a>2017-09-14T08:12:04.367142Z2017-09-14T08:12:04.367142Ztag:niu.moe,2017-09-14:objectId=1660781:objectType=Conversationhttp://activitystrea.ms/schema/1.0/favoritehttps://pleroma.soykaf.com/activities/a4170edf-d273-4b82-931d-662aaf3872f3New favorite by shpshp favorited something2017-09-14T08:10:26.205104Z2017-09-14T08:10:26.205104Zhttp://activitystrea.ms/schema/1.0/notehttps://niu.moe/users/NekoiNemo/statuses/3210992tag:niu.moe,2017-09-14:objectId=1660761:objectType=Conversationhttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/c50c47a0-fac5-4781-a7e6-f20e7226d5fcNew note by shp<a href='https://freezepeach.xyz/user/3458'>@hakui</a> <a href='https://pleroma.soykaf.com/users/lain'>@lain</a> you guys are forgetting the pancakes jeez2017-09-14T08:09:30.088418Z2017-09-14T08:09:30.088418Zhttps://pleroma.soykaf.com/contexts/ac9c98ee-3eca-4b4b-9620-64b5e85e2623http://activitystrea.ms/schema/1.0/favoritehttps://pleroma.soykaf.com/activities/2af9f622-5986-483c-83a1-ac59a9035b50New favorite by shpshp favorited something2017-09-14T08:09:16.346235Z2017-09-14T08:09:16.346235Zhttp://activitystrea.ms/schema/1.0/notetag:freezepeach.xyz,2017-09-14:noticeId=3926191:objectType=commenthttps://pleroma.soykaf.com/contexts/ac9c98ee-3eca-4b4b-9620-64b5e85e2623http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/f52aad69-5828-4e0e-bb7b-f2f0869d3ff0New note by shp<a href='https://gs.smuglo.li/user/253'>@kro</a> I'll probs try some of those 2hu mangos2017-09-14T08:09:13.262835Z2017-09-14T08:09:13.262835Ztag:gs.smuglo.li,2017-09-14:objectType=thread:nonce=c4ac2016e07c4123http://activitystrea.ms/schema/1.0/favoritehttps://pleroma.soykaf.com/activities/35743658-efee-46cf-9cdf-487b95709cd5New favorite by shpshp favorited something2017-09-14T08:09:00.517534Z2017-09-14T08:09:00.517534Zhttp://activitystrea.ms/schema/1.0/notetag:gs.smuglo.li,2017-09-14:noticeId=4113226:objectType=commenttag:gs.smuglo.li,2017-09-14:objectType=thread:nonce=c4ac2016e07c4123http://activitystrea.ms/schema/1.0/favoritehttps://pleroma.soykaf.com/activities/22258ba8-58dc-4e09-b476-fe28d3307377New favorite by shpshp favorited something2017-09-14T08:08:38.087136Z2017-09-14T08:08:38.087136Zhttp://activitystrea.ms/schema/1.0/notehttps://pleroma.soykaf.com/objects/13d7809e-5dca-4117-8738-887759392f2chttps://pleroma.soykaf.com/contexts/ac9c98ee-3eca-4b4b-9620-64b5e85e2623http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/f56d640a-0dbd-48af-80b1-06d0dbd26774New note by shp<a href='https://social.sakamoto.gq/users/eal'>@eal</a> ...but neither does my phone<br><br>low brightness, very dark wallpaper (pic related, but even darker, couldn't find the actual version)<br><a href="https://pleroma.soykaf.com/media/6d1b8d57-80ae-41d6-bdea-58fea09ecdf4/phonewallpaper.png" class='attachment'>phonewallpaper.png</a>2017-09-14T08:07:23.081214Z2017-09-14T08:07:23.081214Zhttps://pleroma.soykaf.com/contexts/f4c5d56e-fc58-467b-a8a5-10515c012355http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/d313df1d-121c-4ab8-abd1-e6aedcf55cbdNew note by shp<a href='https://niu.moe/users/Pasty'>@Pasty</a> y-you too2017-09-14T07:55:26.153486Z2017-09-14T07:55:26.153486Ztag:niu.moe,2017-09-14:objectId=1660616:objectType=Conversationhttp://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/7b642424-4edb-48cc-8711-1eafb4745269New note by shp<a href='https://social.sakamoto.gq/users/eal'>@eal</a> bothers me more when sleeping, wore one for nearly 2 years2017-09-14T07:54:53.449227Z2017-09-14T07:54:53.449227Zhttps://pleroma.soykaf.com/contexts/f4c5d56e-fc58-467b-a8a5-10515c012355http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/5bc1bff1-88c3-489d-8efd-7e4755690a18New note by shpquick test2017-09-14T07:54:09.045525Z2017-09-14T07:54:09.045525Zhttps://pleroma.soykaf.com/contexts/cd770c2a-408e-4895-988c-60319298f219http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/956f1fb5-6f2f-433e-ab71-7f732b76f4beNew note by shphad some trouble getting sleep last night. only used phone to check the time a few times (v essential to have a near-black wallpaper to not blind yourself when you do that). can't rember the last time I rolled in the bed for longer than an hour like that2017-09-14T07:51:23.557775Z2017-09-14T07:51:23.557775Zhttps://pleroma.soykaf.com/contexts/f4c5d56e-fc58-467b-a8a5-10515c012355http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/d935d9f2-ebc7-4ff2-b65a-fbf418a60935New note by shp<a href='https://gs.smuglo.li/user/253'>@kro</a> doesn't sound like a bad idea at all2017-09-14T07:49:55.702555Z2017-09-14T07:49:55.702555Ztag:gs.smuglo.li,2017-09-14:objectType=thread:nonce=c4ac2016e07c4123http://activitystrea.ms/schema/1.0/favoritehttps://pleroma.soykaf.com/activities/342c8803-ee16-487d-9488-a39d763073f6New favorite by shpshp favorited something2017-09-14T07:49:41.875840Z2017-09-14T07:49:41.875840Zhttp://activitystrea.ms/schema/1.0/notetag:anticapitalist.party,2017-09-14:objectId=3322865:objectType=Statustag:anticapitalist.party,2017-09-14:objectId=1251751:objectType=Conversationhttp://activitystrea.ms/schema/1.0/favoritehttps://pleroma.soykaf.com/activities/5d98a19b-dd55-4077-9841-142937c613adNew favorite by shpshp favorited something2017-09-14T07:49:30.584265Z2017-09-14T07:49:30.584265Zhttp://activitystrea.ms/schema/1.0/notetag:gs.smuglo.li,2017-09-14:noticeId=4113170:objectType=commenttag:gs.smuglo.li,2017-09-14:objectType=thread:nonce=c4ac2016e07c4123http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/fdf3626a-50ba-458b-9bf7-b5f2cfa505fcNew note by shp<a href='https://pleroma.hjkos.com/users/hj'>@hj</a> c time2017-09-14T07:48:52.805422Z2017-09-14T07:48:52.805422Zhttps://pleroma.hjkos.com/contexts/dc4a3a3e-d366-4c0c-8789-8a9bee3537d9http://activitystrea.ms/schema/1.0/notehttp://activitystrea.ms/schema/1.0/posthttps://pleroma.soykaf.com/objects/c7c8eb17-b669-4827-9fbc-90f1fc54e4b1New note by shp<a href='https://sunshinegardens.org/users/tbny'>@tbny</a> err.. mediterranean from finnish*2017-09-14T07:46:52.764234Z2017-09-14T07:46:52.764234Zhttps://pleroma.soykaf.com/contexts/ac9c98ee-3eca-4b4b-9620-64b5e85e2623
\ No newline at end of file
diff --git a/test/fixtures/tesla_mock/spc_5381.atom b/test/fixtures/tesla_mock/spc_5381.atom
deleted file mode 100644
index c3288e97b..000000000
--- a/test/fixtures/tesla_mock/spc_5381.atom
+++ /dev/null
@@ -1,438 +0,0 @@
-
-
- GNU social
- https://shitposter.club/api/statuses/user_timeline/5381.atom
- shpuld timeline
- Updates from shpuld on Shitposter Club!
- https://shitposter.club/avatar/5381-96-20171230093854.png
- 2018-02-23T13:42:22+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://shitposter.club/user/5381
- shpuld
-
-
-
-
-
- shpuld
- shp
-
-
-
-
-
-
-
-
-
-
-
-
- tag:shitposter.club,2018-02-23:fave:5381:comment:7387801:2018-02-23T13:39:40+00:00
- Favorite
- shpuld favorited something by mayuutann: <p><span class="h-card"><a href="https://freezepeach.xyz/hakui" class="u-url mention">@<span>hakui</span></a></span> <span class="h-card"><a href="https://gs.smuglo.li/histoire" class="u-url mention">@<span>histoire</span></a></span> <span class="h-card"><a href="https://shitposter.club/shpuld" class="u-url mention">@<span>shpuld</span></a></span> <a href="https://mstdn.io/media/_Ee-x91XN0udpfZVO_U" rel="nofollow"><span class="invisible">https://</span><span class="ellipsis">mstdn.io/media/_Ee-x91XN0udpfZ</span><span class="invisible">VO_U</span></a></p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2018-02-23T13:39:40+00:00
- 2018-02-23T13:39:40+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- https://mstdn.io/users/mayuutann/statuses/99574950785668071
- New comment by mayuutann
- <p><span class="h-card"><a href="https://freezepeach.xyz/hakui" class="u-url mention">@<span>hakui</span></a></span> <span class="h-card"><a href="https://gs.smuglo.li/histoire" class="u-url mention">@<span>histoire</span></a></span> <span class="h-card"><a href="https://shitposter.club/shpuld" class="u-url mention">@<span>shpuld</span></a></span> <a href="https://mstdn.io/media/_Ee-x91XN0udpfZVO_U" rel="nofollow"><span class="invisible">https://</span><span class="ellipsis">mstdn.io/media/_Ee-x91XN0udpfZ</span><span class="invisible">VO_U</span></a></p>
-
-
-
-
-
-
- https://freezepeach.xyz/conversation/4182511
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387723:objectType=comment
- New comment by shpuld
- @<a href="https://freezepeach.xyz/user/3458" class="h-card mention" title="御園はくい">hakui</a> @<a href="https://pleroma.soykaf.com/users/lain" class="h-card mention" title="⑨ lain ⑨">lain</a> how naive~
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T13:30:15+00:00
- 2018-02-23T13:30:15+00:00
-
-
-
- tag:shitposter.club,2018-02-23:objectType=thread:nonce=2f09acf104aebfe3
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387703:objectType=comment
- New comment by shpuld
- @<a href="https://freezepeach.xyz/user/3458" class="h-card mention" title="御園はくい">hakui</a> @<a href="https://pleroma.soykaf.com/users/lain" class="h-card mention" title="⑨ lain ⑨">lain</a> you expect anyone to believe that??
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T13:28:08+00:00
- 2018-02-23T13:28:08+00:00
-
-
-
- tag:shitposter.club,2018-02-23:objectType=thread:nonce=2f09acf104aebfe3
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387639:objectType=comment
- New comment by shpuld
- @<a href="https://mstdn.io/users/mayuutann" class="h-card mention" title="Mayutan☕">mayuutann</a> @<a href="https://freezepeach.xyz/user/3458" class="h-card mention" title="御園はくい">hakui</a> pacyuri!! <a href="https://shitposter.club/file/eea140be45df3f993c4533026bf9a78fe8facd296d2fa0c6d02b2e347c5dc30e.jpg" title="https://shitposter.club/file/eea140be45df3f993c4533026bf9a78fe8facd296d2fa0c6d02b2e347c5dc30e.jpg" class="attachment" id="attachment-1589462" rel="nofollow external">https://shitposter.club/attachment/1589462</a>
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T13:20:38+00:00
- 2018-02-23T13:20:38+00:00
-
-
-
- https://freezepeach.xyz/conversation/4183220
-
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387611:objectType=comment
- New comment by shpuld
- @<a href="https://freezepeach.xyz/user/3458" class="h-card mention" title="御園はくい">hakui</a> why is pacyu eating a pizza so cute
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T13:18:07+00:00
- 2018-02-23T13:18:07+00:00
-
-
-
- https://freezepeach.xyz/conversation/4183220
-
-
-
-
-
-
-
- tag:shitposter.club,2018-02-23:fave:5381:comment:7387600:2018-02-23T13:17:52+00:00
- Favorite
- shpuld favorited something by mayuutann: <p><span class="h-card"><a href="https://shitposter.club/shpuld" class="u-url mention">@<span>shpuld</span></a></span> <span class="h-card"><a href="https://gs.smuglo.li/histoire" class="u-url mention">@<span>histoire</span></a></span> <span class="h-card"><a href="https://freezepeach.xyz/hakui" class="u-url mention">@<span>hakui</span></a></span> pichu! <a href="https://mstdn.io/media/Crv5eubz1KO0dgBEulI" rel="nofollow"><span class="invisible">https://</span><span class="ellipsis">mstdn.io/media/Crv5eubz1KO0dgB</span><span class="invisible">EulI</span></a></p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2018-02-23T13:17:52+00:00
- 2018-02-23T13:17:52+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- https://mstdn.io/users/mayuutann/statuses/99574863865459283
- New comment by mayuutann
- <p><span class="h-card"><a href="https://shitposter.club/shpuld" class="u-url mention">@<span>shpuld</span></a></span> <span class="h-card"><a href="https://gs.smuglo.li/histoire" class="u-url mention">@<span>histoire</span></a></span> <span class="h-card"><a href="https://freezepeach.xyz/hakui" class="u-url mention">@<span>hakui</span></a></span> pichu! <a href="https://mstdn.io/media/Crv5eubz1KO0dgBEulI" rel="nofollow"><span class="invisible">https://</span><span class="ellipsis">mstdn.io/media/Crv5eubz1KO0dgB</span><span class="invisible">EulI</span></a></p>
-
-
-
-
-
-
- https://freezepeach.xyz/conversation/4182511
-
-
-
-
-
-
- tag:shitposter.club,2018-02-23:fave:5381:comment:7387544:2018-02-23T13:12:43+00:00
- Favorite
- shpuld favorited something by mayuutann: <p><span class="h-card"><a href="https://shitposter.club/shpuld" class="u-url mention">@<span>shpuld</span></a></span> wa~~i!! :blobcheer:</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2018-02-23T13:12:43+00:00
- 2018-02-23T13:12:43+00:00
-
- http://activitystrea.ms/schema/1.0/comment
- https://mstdn.io/users/mayuutann/statuses/99574840290947233
- New comment by mayuutann
- <p><span class="h-card"><a href="https://shitposter.club/shpuld" class="u-url mention">@<span>shpuld</span></a></span> wa~~i!! :blobcheer:</p>
-
-
-
-
-
-
- tag:shitposter.club,2018-02-23:objectType=thread:nonce=d05e2b056274c5ab
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387555:objectType=comment
- New comment by shpuld
- @<a href="https://freezepeach.xyz/user/3458" class="h-card mention" title="御園はくい">hakui</a> more!!
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T13:12:23+00:00
- 2018-02-23T13:12:23+00:00
-
-
-
- https://freezepeach.xyz/conversation/4183220
-
-
-
-
-
-
-
- tag:shitposter.club,2018-02-23:fave:5381:note:7387537:2018-02-23T13:12:19+00:00
- Favorite
- shpuld favorited something by hakui: you have pacyupacyu'd for: 45 minutes 03 seconds
-
- http://activitystrea.ms/schema/1.0/favorite
- 2018-02-23T13:12:19+00:00
- 2018-02-23T13:12:19+00:00
-
- http://activitystrea.ms/schema/1.0/note
- tag:freezepeach.xyz,2018-02-23:noticeId=6451332:objectType=note
- New note by hakui
- you have pacyupacyu'd for: 45 minutes 03 seconds
-
-
-
-
-
-
- https://freezepeach.xyz/conversation/4183220
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387539:objectType=comment
- New comment by shpuld
- @<a href="https://mstdn.io/users/mayuutann" class="h-card mention" title="Mayutan☕">mayuutann</a> ndndnd~
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T13:11:04+00:00
- 2018-02-23T13:11:04+00:00
-
-
-
- tag:shitposter.club,2018-02-23:objectType=thread:nonce=d05e2b056274c5ab
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387518:objectType=comment
- New comment by shpuld
- @<a href="https://mstdn.io/users/mayuutann" class="h-card mention" title="Mayutan☕">mayuutann</a> well done! mayumayu is so energetic
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T13:08:50+00:00
- 2018-02-23T13:08:50+00:00
-
-
-
- tag:shitposter.club,2018-02-23:objectType=thread:nonce=d05e2b056274c5ab
-
-
-
-
-
-
-
- tag:shitposter.club,2018-02-23:fave:5381:note:7387503:2018-02-23T13:08:00+00:00
- Favorite
- shpuld favorited something by mayuutann: <p>done with FIGURE MAT!!<br /> (Posted with IFTTT)</p>
-
- http://activitystrea.ms/schema/1.0/favorite
- 2018-02-23T13:08:00+00:00
- 2018-02-23T13:08:00+00:00
-
- http://activitystrea.ms/schema/1.0/note
- https://mstdn.io/users/mayuutann/statuses/99574825526201897
- New note by mayuutann
- <p>done with FIGURE MAT!!<br /> (Posted with IFTTT)</p>
-
-
-
-
-
-
- tag:shitposter.club,2018-02-23:objectType=thread:nonce=c6aaa9b91e8d242f
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387486:objectType=comment
- New comment by shpuld
- @<a href="https://freezepeach.xyz/user/3458" class="h-card mention" title="御園はくい">hakui</a> @<a href="https://a.weirder.earth/users/mutstd" class="h-card mention" title="Mutant Standard">mutstd</a> @<a href="https://donphan.social/users/Siphonay" class="h-card mention" title="Siphonay">siphonay</a> jokes on you I'm oppressively shitposting myself
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T13:05:44+00:00
- 2018-02-23T13:05:44+00:00
-
-
-
- tag:shitposter.club,2018-02-23:objectType=thread:nonce=5d306467336c9661
-
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387466:objectType=comment
- New comment by shpuld
- @<a href="https://freezepeach.xyz/user/3458" class="h-card mention" title="御園はくい">hakui</a> @<a href="https://a.weirder.earth/users/mutstd" class="h-card mention" title="Mutant Standard">mutstd</a> @<a href="https://donphan.social/users/Siphonay" class="h-card mention" title="Siphonay">siphonay</a> how does it feel being hostile
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T13:04:10+00:00
- 2018-02-23T13:04:10+00:00
-
-
-
- tag:shitposter.club,2018-02-23:objectType=thread:nonce=5d306467336c9661
-
-
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387459:objectType=comment
- New comment by shpuld
- @<a href="https://freezepeach.xyz/user/3458" class="h-card mention" title="御園はくい">hakui</a> gorogoro
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T13:03:32+00:00
- 2018-02-23T13:03:32+00:00
-
-
-
- https://freezepeach.xyz/conversation/4181784
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387432:objectType=comment
- New comment by shpuld
- @<a href="https://freezepeach.xyz/user/3458" class="h-card mention" title="御園はくい">hakui</a> ndnd
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T13:02:05+00:00
- 2018-02-23T13:02:05+00:00
-
-
-
- https://freezepeach.xyz/conversation/4181784
-
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2018-02-23:noticeId=7387367:objectType=note
- New note by shpuld
- dear diary: I'm trying to do work but I can only think of tenshi eating a corndog
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T12:56:03+00:00
- 2018-02-23T12:56:03+00:00
-
- tag:shitposter.club,2018-02-23:objectType=thread:nonce=57f316da416743fc
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/note
- tag:shitposter.club,2018-02-23:noticeId=7387354:objectType=note
- New note by shpuld
- jesus christ it's such a fridey at work
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T12:53:50+00:00
- 2018-02-23T12:53:50+00:00
-
- tag:shitposter.club,2018-02-23:objectType=thread:nonce=c05eb5e91bdcbdb7
-
-
-
-
-
-
- http://activitystrea.ms/schema/1.0/comment
- tag:shitposter.club,2018-02-23:noticeId=7387343:objectType=comment
- New comment by shpuld
- @<a href="https://gs.smuglo.li/user/589" class="h-card mention" title="ᛞᚩᚳᛁᛞᚩᚳᛁ">dokidoki</a> give them free upgrades to krokodil
-
-
- http://activitystrea.ms/schema/1.0/post
- 2018-02-23T12:53:15+00:00
- 2018-02-23T12:53:15+00:00
-
-
-
- https://gs.smuglo.li/conversation/3934774
-
-
-
-
-
-
-
diff --git a/test/fixtures/unfollow.xml b/test/fixtures/unfollow.xml
deleted file mode 100644
index 7a8f8fd2e..000000000
--- a/test/fixtures/unfollow.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
- GNU social
- https://social.heldscal.la/api/statuses/user_timeline/23211.atom
- lambadalambda timeline
- Updates from lambadalambda on social.heldscal.la!
- https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
- 2017-05-07T09:54:49+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://social.heldscal.la/user/23211
- lambadalambda
- Call me Deacon Blues.
-
-
-
-
-
- lambadalambda
- Constance Variable
- Call me Deacon Blues.
-
- Berlin
-
-
- homepage
- https://heldscal.la
- true
-
-
-
-
-
-
-
-
-
-
-
-
- undo:tag:social.heldscal.la,2017-05-07:subscription:23211:person:44803:2017-05-07T09:54:48+00:00
- Constance Variable (lambadalambda@social.heldscal.la)'s status on Sunday, 07-May-2017 09:54:49 UTC
- <a href="https://social.heldscal.la/lambadalambda">Constance Variable</a> stopped following <a href="https://pawoo.net/@pekorino">mono</a>.
-
- http://activitystrea.ms/schema/1.0/unfollow
- 2017-05-07T09:54:49+00:00
- 2017-05-07T09:54:49+00:00
-
- http://activitystrea.ms/schema/1.0/person
- https://pawoo.net/users/pekorino
- mono
- http://shitposter.club/mono 孤独のグルメ
-
-
-
-
- pekorino
- mono
- http://shitposter.club/mono 孤独のグルメ
-
-
- tag:social.heldscal.la,2017-05-07:objectType=thread:nonce=6e80caf94e03029f
-
-
-
-
-
-
diff --git a/test/integration/mastodon_websocket_test.exs b/test/integration/mastodon_websocket_test.exs
index ea17e9feb..76fbc8bda 100644
--- a/test/integration/mastodon_websocket_test.exs
+++ b/test/integration/mastodon_websocket_test.exs
@@ -99,30 +99,30 @@ test "accepts valid tokens", state do
test "accepts the 'user' stream", %{token: token} = _state do
assert {:ok, _} = start_socket("?stream=user&access_token=#{token.token}")
- assert capture_log(fn ->
- assert {:error, {401, _}} = start_socket("?stream=user")
- Process.sleep(30)
- end) =~ ":badarg"
+ capture_log(fn ->
+ assert {:error, {401, _}} = start_socket("?stream=user")
+ Process.sleep(30)
+ end)
end
test "accepts the 'user:notification' stream", %{token: token} = _state do
assert {:ok, _} = start_socket("?stream=user:notification&access_token=#{token.token}")
- assert capture_log(fn ->
- assert {:error, {401, _}} = start_socket("?stream=user:notification")
- Process.sleep(30)
- end) =~ ":badarg"
+ capture_log(fn ->
+ assert {:error, {401, _}} = start_socket("?stream=user:notification")
+ Process.sleep(30)
+ end)
end
test "accepts valid token on Sec-WebSocket-Protocol header", %{token: token} do
assert {:ok, _} = start_socket("?stream=user", [{"Sec-WebSocket-Protocol", token.token}])
- assert capture_log(fn ->
- assert {:error, {401, _}} =
- start_socket("?stream=user", [{"Sec-WebSocket-Protocol", "I am a friend"}])
+ capture_log(fn ->
+ assert {:error, {401, _}} =
+ start_socket("?stream=user", [{"Sec-WebSocket-Protocol", "I am a friend"}])
- Process.sleep(30)
- end) =~ ":badarg"
+ Process.sleep(30)
+ end)
end
end
end
diff --git a/test/plugs/admin_secret_authentication_plug_test.exs b/test/plugs/admin_secret_authentication_plug_test.exs
index 89df03c4b..14094eda8 100644
--- a/test/plugs/admin_secret_authentication_plug_test.exs
+++ b/test/plugs/admin_secret_authentication_plug_test.exs
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Plugs.AdminSecretAuthenticationPlugTest do
- use Pleroma.Web.ConnCase, async: true
+ use Pleroma.Web.ConnCase
import Mock
import Pleroma.Factory
diff --git a/test/plugs/oauth_plug_test.exs b/test/plugs/oauth_plug_test.exs
index f74c068cd..9d39d3153 100644
--- a/test/plugs/oauth_plug_test.exs
+++ b/test/plugs/oauth_plug_test.exs
@@ -16,7 +16,7 @@ defmodule Pleroma.Plugs.OAuthPlugTest do
setup %{conn: conn} do
user = insert(:user)
- {:ok, %{token: token}} = Pleroma.Web.OAuth.Token.create_token(insert(:oauth_app), user)
+ {:ok, %{token: token}} = Pleroma.Web.OAuth.Token.create(insert(:oauth_app), user)
%{user: user, token: token, conn: conn}
end
diff --git a/test/plugs/oauth_scopes_plug_test.exs b/test/plugs/oauth_scopes_plug_test.exs
index 884de7b4d..334316043 100644
--- a/test/plugs/oauth_scopes_plug_test.exs
+++ b/test/plugs/oauth_scopes_plug_test.exs
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Plugs.OAuthScopesPlugTest do
- use Pleroma.Web.ConnCase, async: true
+ use Pleroma.Web.ConnCase
alias Pleroma.Plugs.OAuthScopesPlug
alias Pleroma.Repo
diff --git a/test/support/factory.ex b/test/support/factory.ex
index 486eda8da..2fdfabbc5 100644
--- a/test/support/factory.ex
+++ b/test/support/factory.ex
@@ -200,25 +200,6 @@ def note_activity_factory(attrs \\ %{}) do
|> Map.merge(attrs)
end
- defp expiration_offset_by_minutes(attrs, minutes) do
- scheduled_at =
- NaiveDateTime.utc_now()
- |> NaiveDateTime.add(:timer.minutes(minutes), :millisecond)
- |> NaiveDateTime.truncate(:second)
-
- %Pleroma.ActivityExpiration{}
- |> Map.merge(attrs)
- |> Map.put(:scheduled_at, scheduled_at)
- end
-
- def expiration_in_the_past_factory(attrs \\ %{}) do
- expiration_offset_by_minutes(attrs, -60)
- end
-
- def expiration_in_the_future_factory(attrs \\ %{}) do
- expiration_offset_by_minutes(attrs, 61)
- end
-
def article_activity_factory do
article = insert(:article)
diff --git a/test/support/http_request_mock.ex b/test/support/http_request_mock.ex
index a0ebf65d9..344e27f13 100644
--- a/test/support/http_request_mock.ex
+++ b/test/support/http_request_mock.ex
@@ -103,14 +103,6 @@ def get(
}}
end
- def get("https://mastodon.social/users/emelie.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body: File.read!("test/fixtures/tesla_mock/emelie.atom")
- }}
- end
-
def get(
"https://osada.macgirvin.com/.well-known/webfinger?resource=acct:mike@osada.macgirvin.com",
_,
@@ -137,14 +129,6 @@ def get(
}}
end
- def get("https://pawoo.net/users/pekorino.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body: File.read!("test/fixtures/tesla_mock/https___pawoo.net_users_pekorino.atom")
- }}
- end
-
def get(
"https://pawoo.net/.well-known/webfinger?resource=acct:https://pawoo.net/users/pekorino",
_,
@@ -158,19 +142,6 @@ def get(
}}
end
- def get(
- "https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom",
- _,
- _,
- _
- ) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body: File.read!("test/fixtures/tesla_mock/atarifrosch_feed.xml")
- }}
- end
-
def get(
"https://social.stopwatchingus-heidelberg.de/.well-known/webfinger?resource=acct:https://social.stopwatchingus-heidelberg.de/user/18330",
_,
@@ -184,27 +155,6 @@ def get(
}}
end
- def get("https://mamot.fr/users/Skruyb.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body: File.read!("test/fixtures/tesla_mock/https___mamot.fr_users_Skruyb.atom")
- }}
- end
-
- def get(
- "https://mamot.fr/.well-known/webfinger?resource=acct:https://mamot.fr/users/Skruyb",
- _,
- _,
- [{"accept", "application/xrd+xml,application/jrd+json"}]
- ) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body: File.read!("test/fixtures/tesla_mock/skruyb@mamot.fr.atom")
- }}
- end
-
def get(
"https://social.heldscal.la/.well-known/webfinger?resource=nonexistant@social.heldscal.la",
_,
@@ -507,19 +457,6 @@ def get("https://mamot.fr/.well-known/host-meta", _, _, _) do
}}
end
- def get(
- "https://mamot.fr/.well-known/webfinger?resource=https://mamot.fr/users/Skruyb",
- _,
- _,
- _
- ) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body: File.read!("test/fixtures/tesla_mock/skruyb@mamot.fr.atom")
- }}
- end
-
def get("http://pawoo.net/.well-known/host-meta", _, _, _) do
{:ok,
%Tesla.Env{
@@ -647,17 +584,6 @@ def get(
}}
end
- def get("https://pleroma.soykaf.com/users/lain/feed.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body:
- File.read!(
- "test/fixtures/tesla_mock/https___pleroma.soykaf.com_users_lain_feed.atom.xml"
- )
- }}
- end
-
def get(url, _, _, [{"accept", "application/xrd+xml,application/jrd+json"}])
when url in [
"https://pleroma.soykaf.com/.well-known/webfinger?resource=acct:https://pleroma.soykaf.com/users/lain",
@@ -670,17 +596,6 @@ def get(url, _, _, [{"accept", "application/xrd+xml,application/jrd+json"}])
}}
end
- def get("https://shitposter.club/api/statuses/user_timeline/1.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body:
- File.read!(
- "test/fixtures/tesla_mock/https___shitposter.club_api_statuses_user_timeline_1.atom.xml"
- )
- }}
- end
-
def get(
"https://shitposter.club/.well-known/webfinger?resource=https://shitposter.club/user/1",
_,
@@ -694,37 +609,10 @@ def get(
}}
end
- def get("https://shitposter.club/notice/2827873", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body: File.read!("test/fixtures/tesla_mock/https___shitposter.club_notice_2827873.json")
- }}
- end
-
- def get("https://shitposter.club/api/statuses/show/2827873.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body:
- File.read!(
- "test/fixtures/tesla_mock/https___shitposter.club_api_statuses_show_2827873.atom.xml"
- )
- }}
- end
-
def get("https://testing.pleroma.lol/objects/b319022a-4946-44c5-9de9-34801f95507b", _, _, _) do
{:ok, %Tesla.Env{status: 200}}
end
- def get("https://shitposter.club/api/statuses/user_timeline/5381.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body: File.read!("test/fixtures/tesla_mock/spc_5381.atom")
- }}
- end
-
def get(
"https://shitposter.club/.well-known/webfinger?resource=https://shitposter.club/user/5381",
_,
@@ -746,14 +634,6 @@ def get("http://shitposter.club/.well-known/host-meta", _, _, _) do
}}
end
- def get("https://shitposter.club/api/statuses/show/7369654.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body: File.read!("test/fixtures/tesla_mock/7369654.atom")
- }}
- end
-
def get("https://shitposter.club/notice/4027863", _, _, _) do
{:ok,
%Tesla.Env{
@@ -762,14 +642,6 @@ def get("https://shitposter.club/notice/4027863", _, _, _) do
}}
end
- def get("https://social.sakamoto.gq/users/eal/feed.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body: File.read!("test/fixtures/tesla_mock/sakamoto_eal_feed.atom")
- }}
- end
-
def get("http://social.sakamoto.gq/.well-known/host-meta", _, _, _) do
{:ok,
%Tesla.Env{
@@ -791,15 +663,6 @@ def get(
}}
end
- def get(
- "https://social.sakamoto.gq/objects/0ccc1a2c-66b0-4305-b23a-7f7f2b040056",
- _,
- _,
- [{"accept", "application/atom+xml"}]
- ) do
- {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/tesla_mock/sakamoto.atom")}}
- end
-
def get("http://mastodon.social/.well-known/host-meta", _, _, _) do
{:ok,
%Tesla.Env{
@@ -853,28 +716,6 @@ def get(
{:ok, %Tesla.Env{status: 406, body: ""}}
end
- def get("http://gs.example.org/index.php/api/statuses/user_timeline/1.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body:
- File.read!(
- "test/fixtures/tesla_mock/http__gs.example.org_index.php_api_statuses_user_timeline_1.atom.xml"
- )
- }}
- end
-
- def get("https://social.heldscal.la/api/statuses/user_timeline/29191.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body:
- File.read!(
- "test/fixtures/tesla_mock/https___social.heldscal.la_api_statuses_user_timeline_29191.atom.xml"
- )
- }}
- end
-
def get("http://squeet.me/.well-known/host-meta", _, _, _) do
{:ok,
%Tesla.Env{status: 200, body: File.read!("test/fixtures/tesla_mock/squeet.me_host_meta")}}
@@ -996,17 +837,6 @@ def get(
}}
end
- def get("https://social.heldscal.la/api/statuses/user_timeline/23211.atom", _, _, _) do
- {:ok,
- %Tesla.Env{
- status: 200,
- body:
- File.read!(
- "test/fixtures/tesla_mock/https___social.heldscal.la_api_statuses_user_timeline_23211.atom.xml"
- )
- }}
- end
-
def get(
"https://social.heldscal.la/.well-known/webfinger?resource=https://social.heldscal.la/user/23211",
_,
@@ -1036,10 +866,6 @@ def get("https://social.heldscal.la/.well-known/host-meta", _, _, _) do
}}
end
- def get("https://mastodon.social/users/lambadalambda.atom", _, _, _) do
- {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/lambadalambda.atom")}}
- end
-
def get("https://mastodon.social/users/lambadalambda", _, _, _) do
{:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/lambadalambda.json")}}
end
diff --git a/test/tasks/database_test.exs b/test/tasks/database_test.exs
index 3a28aa133..292a5ef5f 100644
--- a/test/tasks/database_test.exs
+++ b/test/tasks/database_test.exs
@@ -3,14 +3,15 @@
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Mix.Tasks.Pleroma.DatabaseTest do
+ use Pleroma.DataCase
+ use Oban.Testing, repo: Pleroma.Repo
+
alias Pleroma.Activity
alias Pleroma.Object
alias Pleroma.Repo
alias Pleroma.User
alias Pleroma.Web.CommonAPI
- use Pleroma.DataCase
-
import Pleroma.Factory
setup_all do
@@ -130,40 +131,45 @@ test "it turns OrderedCollection likes into empty arrays" do
describe "ensure_expiration" do
test "it adds to expiration old statuses" do
- %{id: activity_id1} = insert(:note_activity)
+ activity1 = insert(:note_activity)
- %{id: activity_id2} =
- insert(:note_activity, %{inserted_at: NaiveDateTime.from_iso8601!("2015-01-23 23:50:07")})
+ {:ok, inserted_at, 0} = DateTime.from_iso8601("2015-01-23T23:50:07Z")
+ activity2 = insert(:note_activity, %{inserted_at: inserted_at})
- %{id: activity_id3} = activity3 = insert(:note_activity)
+ %{id: activity_id3} = insert(:note_activity)
- expires_at =
- NaiveDateTime.utc_now()
- |> NaiveDateTime.add(60 * 61, :second)
- |> NaiveDateTime.truncate(:second)
+ expires_at = DateTime.add(DateTime.utc_now(), 60 * 61)
- Pleroma.ActivityExpiration.create(activity3, expires_at)
+ Pleroma.Workers.PurgeExpiredActivity.enqueue(%{
+ activity_id: activity_id3,
+ expires_at: expires_at
+ })
Mix.Tasks.Pleroma.Database.run(["ensure_expiration"])
- expirations =
- Pleroma.ActivityExpiration
- |> order_by(:activity_id)
- |> Repo.all()
+ assert_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredActivity,
+ args: %{activity_id: activity1.id},
+ scheduled_at:
+ activity1.inserted_at
+ |> DateTime.from_naive!("Etc/UTC")
+ |> Timex.shift(days: 365)
+ )
- assert [
- %Pleroma.ActivityExpiration{
- activity_id: ^activity_id1
- },
- %Pleroma.ActivityExpiration{
- activity_id: ^activity_id2,
- scheduled_at: ~N[2016-01-23 23:50:07]
- },
- %Pleroma.ActivityExpiration{
- activity_id: ^activity_id3,
- scheduled_at: ^expires_at
- }
- ] = expirations
+ assert_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredActivity,
+ args: %{activity_id: activity2.id},
+ scheduled_at:
+ activity2.inserted_at
+ |> DateTime.from_naive!("Etc/UTC")
+ |> Timex.shift(days: 365)
+ )
+
+ assert_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredActivity,
+ args: %{activity_id: activity_id3},
+ scheduled_at: expires_at
+ )
end
end
end
diff --git a/test/upload/filter/anonymize_filename_test.exs b/test/upload/filter/anonymize_filename_test.exs
index adff70f57..19b915cc8 100644
--- a/test/upload/filter/anonymize_filename_test.exs
+++ b/test/upload/filter/anonymize_filename_test.exs
@@ -24,18 +24,18 @@ defmodule Pleroma.Upload.Filter.AnonymizeFilenameTest do
test "it replaces filename on pre-defined text", %{upload_file: upload_file} do
Config.put([Upload.Filter.AnonymizeFilename, :text], "custom-file.png")
- {:ok, %Upload{name: name}} = Upload.Filter.AnonymizeFilename.filter(upload_file)
+ {:ok, :filtered, %Upload{name: name}} = Upload.Filter.AnonymizeFilename.filter(upload_file)
assert name == "custom-file.png"
end
test "it replaces filename on pre-defined text expression", %{upload_file: upload_file} do
Config.put([Upload.Filter.AnonymizeFilename, :text], "custom-file.{extension}")
- {:ok, %Upload{name: name}} = Upload.Filter.AnonymizeFilename.filter(upload_file)
+ {:ok, :filtered, %Upload{name: name}} = Upload.Filter.AnonymizeFilename.filter(upload_file)
assert name == "custom-file.jpg"
end
test "it replaces filename on random text", %{upload_file: upload_file} do
- {:ok, %Upload{name: name}} = Upload.Filter.AnonymizeFilename.filter(upload_file)
+ {:ok, :filtered, %Upload{name: name}} = Upload.Filter.AnonymizeFilename.filter(upload_file)
assert <<_::bytes-size(14)>> <> ".jpg" = name
refute name == "an… image.jpg"
end
diff --git a/test/upload/filter/dedupe_test.exs b/test/upload/filter/dedupe_test.exs
index 966c353f7..75c7198e1 100644
--- a/test/upload/filter/dedupe_test.exs
+++ b/test/upload/filter/dedupe_test.exs
@@ -25,6 +25,7 @@ test "adds shasum" do
assert {
:ok,
+ :filtered,
%Pleroma.Upload{id: @shasum, path: @shasum <> ".jpg"}
} = Dedupe.filter(upload)
end
diff --git a/test/upload/filter/exiftool_test.exs b/test/upload/filter/exiftool_test.exs
index 8ed7d650b..d4cd4ba11 100644
--- a/test/upload/filter/exiftool_test.exs
+++ b/test/upload/filter/exiftool_test.exs
@@ -21,7 +21,7 @@ test "apply exiftool filter" do
tempfile: Path.absname("test/fixtures/DSCN0010_tmp.jpg")
}
- assert Filter.Exiftool.filter(upload) == :ok
+ assert Filter.Exiftool.filter(upload) == {:ok, :filtered}
{exif_original, 0} = System.cmd("exiftool", ["test/fixtures/DSCN0010.jpg"])
{exif_filtered, 0} = System.cmd("exiftool", ["test/fixtures/DSCN0010_tmp.jpg"])
@@ -30,4 +30,13 @@ test "apply exiftool filter" do
assert String.match?(exif_original, ~r/GPS/)
refute String.match?(exif_filtered, ~r/GPS/)
end
+
+ test "verify webp files are skipped" do
+ upload = %Pleroma.Upload{
+ name: "sample.webp",
+ content_type: "image/webp"
+ }
+
+ assert Filter.Exiftool.filter(upload) == {:ok, :noop}
+ end
end
diff --git a/test/upload/filter/mogrifun_test.exs b/test/upload/filter/mogrifun_test.exs
index 2426a8496..dc1e9e78f 100644
--- a/test/upload/filter/mogrifun_test.exs
+++ b/test/upload/filter/mogrifun_test.exs
@@ -36,7 +36,7 @@ test "apply mogrify filter" do
save: fn _f, _o -> :ok end
]}
]) do
- assert Filter.Mogrifun.filter(upload) == :ok
+ assert Filter.Mogrifun.filter(upload) == {:ok, :filtered}
end
Task.await(task)
diff --git a/test/upload/filter/mogrify_test.exs b/test/upload/filter/mogrify_test.exs
index 62ca30487..bf64b96b3 100644
--- a/test/upload/filter/mogrify_test.exs
+++ b/test/upload/filter/mogrify_test.exs
@@ -33,7 +33,7 @@ test "apply mogrify filter" do
custom: fn _m, _a -> :ok end,
custom: fn m, a, o -> send(task.pid, {:apply_filter, {m, a, o}}) end,
save: fn _f, _o -> :ok end do
- assert Filter.Mogrify.filter(upload) == :ok
+ assert Filter.Mogrify.filter(upload) == {:ok, :filtered}
end
Task.await(task)
diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs
index 57988dc1e..0517571f2 100644
--- a/test/web/activity_pub/activity_pub_controller_test.exs
+++ b/test/web/activity_pub/activity_pub_controller_test.exs
@@ -905,6 +905,8 @@ test "it requires authentication if instance is NOT federating", %{
end
describe "POST /users/:nickname/outbox (C2S)" do
+ setup do: clear_config([:instance, :limit])
+
setup do
[
activity: %{
@@ -1121,6 +1123,20 @@ test "it doesn't spreads faulty attributedTo or actor fields", %{
assert cirno_object.data["actor"] == cirno.ap_id
assert cirno_object.data["attributedTo"] == cirno.ap_id
end
+
+ test "Character limitation", %{conn: conn, activity: activity} do
+ Pleroma.Config.put([:instance, :limit], 5)
+ user = insert(:user)
+
+ result =
+ conn
+ |> assign(:user, user)
+ |> put_req_header("content-type", "application/activity+json")
+ |> post("/users/#{user.nickname}/outbox", activity)
+ |> json_response(400)
+
+ assert result == "Note is over the character limit"
+ end
end
describe "/relay/followers" do
diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs
index 03f968aaf..d8caa0b00 100644
--- a/test/web/activity_pub/activity_pub_test.exs
+++ b/test/web/activity_pub/activity_pub_test.exs
@@ -239,7 +239,7 @@ test "drops activities beyond a certain limit" do
}
}
- assert {:error, {:remote_limit_error, _}} = ActivityPub.insert(data)
+ assert {:error, :remote_limit} = ActivityPub.insert(data)
end
test "doesn't drop activities with content being null" do
@@ -386,9 +386,11 @@ test "can be fetched into a timeline" do
end
describe "create activities" do
- test "it reverts create" do
- user = insert(:user)
+ setup do
+ [user: insert(:user)]
+ end
+ test "it reverts create", %{user: user} do
with_mock(Utils, [:passthrough], maybe_federate: fn _ -> {:error, :reverted} end) do
assert {:error, :reverted} =
ActivityPub.create(%{
@@ -407,9 +409,47 @@ test "it reverts create" do
assert Repo.aggregate(Object, :count, :id) == 0
end
- test "removes doubled 'to' recipients" do
- user = insert(:user)
+ test "creates activity if expiration is not configured and expires_at is not passed", %{
+ user: user
+ } do
+ clear_config([Pleroma.Workers.PurgeExpiredActivity, :enabled], false)
+ assert {:ok, _} =
+ ActivityPub.create(%{
+ to: ["user1", "user2"],
+ actor: user,
+ context: "",
+ object: %{
+ "to" => ["user1", "user2"],
+ "type" => "Note",
+ "content" => "testing"
+ }
+ })
+ end
+
+ test "rejects activity if expires_at present but expiration is not configured", %{user: user} do
+ clear_config([Pleroma.Workers.PurgeExpiredActivity, :enabled], false)
+
+ assert {:error, :expired_activities_disabled} =
+ ActivityPub.create(%{
+ to: ["user1", "user2"],
+ actor: user,
+ context: "",
+ object: %{
+ "to" => ["user1", "user2"],
+ "type" => "Note",
+ "content" => "testing"
+ },
+ additional: %{
+ "expires_at" => DateTime.utc_now()
+ }
+ })
+
+ assert Repo.aggregate(Activity, :count, :id) == 0
+ assert Repo.aggregate(Object, :count, :id) == 0
+ end
+
+ test "removes doubled 'to' recipients", %{user: user} do
{:ok, activity} =
ActivityPub.create(%{
to: ["user1", "user1", "user2"],
@@ -427,9 +467,7 @@ test "removes doubled 'to' recipients" do
assert activity.recipients == ["user1", "user2", user.ap_id]
end
- test "increases user note count only for public activities" do
- user = insert(:user)
-
+ test "increases user note count only for public activities", %{user: user} do
{:ok, _} =
CommonAPI.post(User.get_cached_by_id(user.id), %{
status: "1",
@@ -458,8 +496,7 @@ test "increases user note count only for public activities" do
assert user.note_count == 2
end
- test "increases replies count" do
- user = insert(:user)
+ test "increases replies count", %{user: user} do
user2 = insert(:user)
{:ok, activity} = CommonAPI.post(user, %{status: "1", visibility: "public"})
@@ -2069,18 +2106,25 @@ test "it just returns the input if the user has no following/follower addresses"
end
describe "global activity expiration" do
- setup do: clear_config([:mrf, :policies])
-
test "creates an activity expiration for local Create activities" do
- Pleroma.Config.put(
- [:mrf, :policies],
- Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy
+ clear_config([:mrf, :policies], Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy)
+
+ {:ok, activity} = ActivityBuilder.insert(%{"type" => "Create", "context" => "3hu"})
+ {:ok, follow} = ActivityBuilder.insert(%{"type" => "Follow", "context" => "3hu"})
+
+ assert_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredActivity,
+ args: %{activity_id: activity.id},
+ scheduled_at:
+ activity.inserted_at
+ |> DateTime.from_naive!("Etc/UTC")
+ |> Timex.shift(days: 365)
)
- {:ok, %{id: id_create}} = ActivityBuilder.insert(%{"type" => "Create", "context" => "3hu"})
- {:ok, _follow} = ActivityBuilder.insert(%{"type" => "Follow", "context" => "3hu"})
-
- assert [%{activity_id: ^id_create}] = Pleroma.ActivityExpiration |> Repo.all()
+ refute_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredActivity,
+ args: %{activity_id: follow.id}
+ )
end
end
diff --git a/test/web/activity_pub/mrf/activity_expiration_policy_test.exs b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs
index f25cf8b12..e7370d4ef 100644
--- a/test/web/activity_pub/mrf/activity_expiration_policy_test.exs
+++ b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs
@@ -18,11 +18,11 @@ test "adds `expires_at` property" do
"object" => %{"type" => "Note"}
})
- assert Timex.diff(expires_at, NaiveDateTime.utc_now(), :days) == 364
+ assert Timex.diff(expires_at, DateTime.utc_now(), :days) == 364
end
test "keeps existing `expires_at` if it less than the config setting" do
- expires_at = NaiveDateTime.utc_now() |> Timex.shift(days: 1)
+ expires_at = DateTime.utc_now() |> Timex.shift(days: 1)
assert {:ok, %{"type" => "Create", "expires_at" => ^expires_at}} =
ActivityExpirationPolicy.filter(%{
@@ -35,7 +35,7 @@ test "keeps existing `expires_at` if it less than the config setting" do
end
test "overwrites existing `expires_at` if it greater than the config setting" do
- too_distant_future = NaiveDateTime.utc_now() |> Timex.shift(years: 2)
+ too_distant_future = DateTime.utc_now() |> Timex.shift(years: 2)
assert {:ok, %{"type" => "Create", "expires_at" => expires_at}} =
ActivityExpirationPolicy.filter(%{
@@ -46,7 +46,7 @@ test "overwrites existing `expires_at` if it greater than the config setting" do
"object" => %{"type" => "Note"}
})
- assert Timex.diff(expires_at, NaiveDateTime.utc_now(), :days) == 364
+ assert Timex.diff(expires_at, DateTime.utc_now(), :days) == 364
end
test "ignores remote activities" do
diff --git a/test/web/activity_pub/mrf/force_bot_unlisted_policy_test.exs b/test/web/activity_pub/mrf/force_bot_unlisted_policy_test.exs
new file mode 100644
index 000000000..86dd9ddae
--- /dev/null
+++ b/test/web/activity_pub/mrf/force_bot_unlisted_policy_test.exs
@@ -0,0 +1,60 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicyTest do
+ use Pleroma.DataCase
+ import Pleroma.Factory
+
+ alias Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicy
+ @public "https://www.w3.org/ns/activitystreams#Public"
+
+ defp generate_messages(actor) do
+ {%{
+ "actor" => actor.ap_id,
+ "type" => "Create",
+ "object" => %{},
+ "to" => [@public, "f"],
+ "cc" => [actor.follower_address, "d"]
+ },
+ %{
+ "actor" => actor.ap_id,
+ "type" => "Create",
+ "object" => %{"to" => ["f", actor.follower_address], "cc" => ["d", @public]},
+ "to" => ["f", actor.follower_address],
+ "cc" => ["d", @public]
+ }}
+ end
+
+ test "removes from the federated timeline by nickname heuristics 1" do
+ actor = insert(:user, %{nickname: "annoying_ebooks@example.com"})
+
+ {message, except_message} = generate_messages(actor)
+
+ assert ForceBotUnlistedPolicy.filter(message) == {:ok, except_message}
+ end
+
+ test "removes from the federated timeline by nickname heuristics 2" do
+ actor = insert(:user, %{nickname: "cirnonewsnetworkbot@meow.cat"})
+
+ {message, except_message} = generate_messages(actor)
+
+ assert ForceBotUnlistedPolicy.filter(message) == {:ok, except_message}
+ end
+
+ test "removes from the federated timeline by actor type Application" do
+ actor = insert(:user, %{actor_type: "Application"})
+
+ {message, except_message} = generate_messages(actor)
+
+ assert ForceBotUnlistedPolicy.filter(message) == {:ok, except_message}
+ end
+
+ test "removes from the federated timeline by actor type Service" do
+ actor = insert(:user, %{actor_type: "Service"})
+
+ {message, except_message} = generate_messages(actor)
+
+ assert ForceBotUnlistedPolicy.filter(message) == {:ok, except_message}
+ end
+end
diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs
index 3fa41b0c7..cc55a7be7 100644
--- a/test/web/activity_pub/transmogrifier_test.exs
+++ b/test/web/activity_pub/transmogrifier_test.exs
@@ -105,7 +105,7 @@ test "it fetches reply-to activities if we don't have them" do
object =
data["object"]
- |> Map.put("inReplyTo", "https://shitposter.club/notice/2827873")
+ |> Map.put("inReplyTo", "https://mstdn.io/users/mayuutann/statuses/99568293732299394")
data = Map.put(data, "object", object)
{:ok, returned_activity} = Transmogrifier.handle_incoming(data)
@@ -113,10 +113,11 @@ test "it fetches reply-to activities if we don't have them" do
assert activity =
Activity.get_create_by_object_ap_id(
- "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
+ "https://mstdn.io/users/mayuutann/statuses/99568293732299394"
)
- assert returned_object.data["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873"
+ assert returned_object.data["inReplyTo"] ==
+ "https://mstdn.io/users/mayuutann/statuses/99568293732299394"
end
test "it does not fetch reply-to activities beyond max replies depth limit" do
@@ -140,8 +141,7 @@ test "it does not fetch reply-to activities beyond max replies depth limit" do
"tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
)
- assert returned_object.data["inReplyToAtomUri"] ==
- "https://shitposter.club/notice/2827873"
+ assert returned_object.data["inReplyTo"] == "https://shitposter.club/notice/2827873"
end
end
@@ -1072,7 +1072,7 @@ test "returns not modified object when hasn't containts inReplyTo field", %{data
assert Transmogrifier.fix_in_reply_to(data) == data
end
- test "returns object with inReplyToAtomUri when denied incoming reply", %{data: data} do
+ test "returns object with inReplyTo when denied incoming reply", %{data: data} do
Pleroma.Config.put([:instance, :federation_incoming_replies_max_depth], 0)
object_with_reply =
@@ -1080,26 +1080,22 @@ test "returns object with inReplyToAtomUri when denied incoming reply", %{data:
modified_object = Transmogrifier.fix_in_reply_to(object_with_reply)
assert modified_object["inReplyTo"] == "https://shitposter.club/notice/2827873"
- assert modified_object["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873"
object_with_reply =
Map.put(data["object"], "inReplyTo", %{"id" => "https://shitposter.club/notice/2827873"})
modified_object = Transmogrifier.fix_in_reply_to(object_with_reply)
assert modified_object["inReplyTo"] == %{"id" => "https://shitposter.club/notice/2827873"}
- assert modified_object["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873"
object_with_reply =
Map.put(data["object"], "inReplyTo", ["https://shitposter.club/notice/2827873"])
modified_object = Transmogrifier.fix_in_reply_to(object_with_reply)
assert modified_object["inReplyTo"] == ["https://shitposter.club/notice/2827873"]
- assert modified_object["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873"
object_with_reply = Map.put(data["object"], "inReplyTo", [])
modified_object = Transmogrifier.fix_in_reply_to(object_with_reply)
assert modified_object["inReplyTo"] == []
- assert modified_object["inReplyToAtomUri"] == ""
end
@tag capture_log: true
@@ -1108,19 +1104,17 @@ test "returns modified object when allowed incoming reply", %{data: data} do
Map.put(
data["object"],
"inReplyTo",
- "https://shitposter.club/notice/2827873"
+ "https://mstdn.io/users/mayuutann/statuses/99568293732299394"
)
Pleroma.Config.put([:instance, :federation_incoming_replies_max_depth], 5)
modified_object = Transmogrifier.fix_in_reply_to(object_with_reply)
assert modified_object["inReplyTo"] ==
- "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
-
- assert modified_object["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873"
+ "https://mstdn.io/users/mayuutann/statuses/99568293732299394"
assert modified_object["context"] ==
- "tag:shitposter.club,2017-05-05:objectType=thread:nonce=3c16e9c2681f6d26"
+ "tag:shitposter.club,2018-02-22:objectType=thread:nonce=e5a7c72d60a9c0e4"
end
end
@@ -1222,7 +1216,9 @@ test "returns nil when cannot normalize object" do
@tag capture_log: true
test "returns {:ok, %Object{}} for success case" do
assert {:ok, %Object{}} =
- Transmogrifier.get_obj_helper("https://shitposter.club/notice/2827873")
+ Transmogrifier.get_obj_helper(
+ "https://mstdn.io/users/mayuutann/statuses/99568293732299394"
+ )
end
end
diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs
index 7ceb7ec7f..bdc569e64 100644
--- a/test/web/common_api/common_api_test.exs
+++ b/test/web/common_api/common_api_test.exs
@@ -600,15 +600,15 @@ test "it validates character limits are correctly enforced" do
test "it can handle activities that expire" do
user = insert(:user)
- expires_at =
- NaiveDateTime.utc_now()
- |> NaiveDateTime.truncate(:second)
- |> NaiveDateTime.add(1_000_000, :second)
+ expires_at = DateTime.add(DateTime.utc_now(), 1_000_000)
assert {:ok, activity} = CommonAPI.post(user, %{status: "chai", expires_in: 1_000_000})
- assert expiration = Pleroma.ActivityExpiration.get_by_activity_id(activity.id)
- assert expiration.scheduled_at == expires_at
+ assert_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredActivity,
+ args: %{activity_id: activity.id},
+ scheduled_at: expires_at
+ )
end
end
diff --git a/test/web/feed/tag_controller_test.exs b/test/web/feed/tag_controller_test.exs
index 3c29cd94f..868e40965 100644
--- a/test/web/feed/tag_controller_test.exs
+++ b/test/web/feed/tag_controller_test.exs
@@ -181,4 +181,17 @@ test "gets a feed (RSS)", %{conn: conn} do
'yeah #PleromaArt'
]
end
+
+ describe "private instance" do
+ setup do: clear_config([:instance, :public])
+
+ test "returns 404 for tags feed", %{conn: conn} do
+ Config.put([:instance, :public], false)
+
+ conn
+ |> put_req_header("accept", "application/rss+xml")
+ |> get(tag_feed_path(conn, :feed, "pleromaart"))
+ |> response(404)
+ end
+ end
end
diff --git a/test/web/feed/user_controller_test.exs b/test/web/feed/user_controller_test.exs
index 0d2a61967..9a5610baa 100644
--- a/test/web/feed/user_controller_test.exs
+++ b/test/web/feed/user_controller_test.exs
@@ -246,4 +246,20 @@ test "with non-html / non-json format, it returns error when user is not found",
assert response == ~S({"error":"Not found"})
end
end
+
+ describe "private instance" do
+ setup do: clear_config([:instance, :public])
+
+ test "returns 404 for user feed", %{conn: conn} do
+ Config.put([:instance, :public], false)
+ user = insert(:user)
+
+ {:ok, _} = CommonAPI.post(user, %{status: "test"})
+
+ assert conn
+ |> put_req_header("accept", "application/atom+xml")
+ |> get(user_feed_path(conn, :feed, user.nickname))
+ |> response(404)
+ end
+ end
end
diff --git a/test/web/instances/instance_test.exs b/test/web/instances/instance_test.exs
index 5d4efcebe..4f0805100 100644
--- a/test/web/instances/instance_test.exs
+++ b/test/web/instances/instance_test.exs
@@ -99,37 +99,54 @@ test "does NOT modify `unreachable_since` value of existing record in case it's
end
end
- test "Scrapes favicon URLs" do
- Tesla.Mock.mock(fn %{url: "https://favicon.example.org/"} ->
- %Tesla.Env{
- status: 200,
- body: ~s[]
- }
- end)
+ describe "get_or_update_favicon/1" do
+ test "Scrapes favicon URLs" do
+ Tesla.Mock.mock(fn %{url: "https://favicon.example.org/"} ->
+ %Tesla.Env{
+ status: 200,
+ body: ~s[]
+ }
+ end)
- assert "https://favicon.example.org/favicon.png" ==
- Instance.get_or_update_favicon(URI.parse("https://favicon.example.org/"))
- end
+ assert "https://favicon.example.org/favicon.png" ==
+ Instance.get_or_update_favicon(URI.parse("https://favicon.example.org/"))
+ end
- test "Returns nil on too long favicon URLs" do
- clear_config([:instances_favicons, :enabled], true)
+ test "Returns nil on too long favicon URLs" do
+ long_favicon_url =
+ "https://Lorem.ipsum.dolor.sit.amet/consecteturadipiscingelit/Praesentpharetrapurusutaliquamtempus/Mauriseulaoreetarcu/atfacilisisorci/Nullamporttitor/nequesedfeugiatmollis/dolormagnaefficiturlorem/nonpretiumsapienorcieurisus/Nullamveleratsem/Maecenassedaccumsanexnam/favicon.png"
- long_favicon_url =
- "https://Lorem.ipsum.dolor.sit.amet/consecteturadipiscingelit/Praesentpharetrapurusutaliquamtempus/Mauriseulaoreetarcu/atfacilisisorci/Nullamporttitor/nequesedfeugiatmollis/dolormagnaefficiturlorem/nonpretiumsapienorcieurisus/Nullamveleratsem/Maecenassedaccumsanexnam/favicon.png"
+ Tesla.Mock.mock(fn %{url: "https://long-favicon.example.org/"} ->
+ %Tesla.Env{
+ status: 200,
+ body:
+ ~s[]
+ }
+ end)
- Tesla.Mock.mock(fn %{url: "https://long-favicon.example.org/"} ->
- %Tesla.Env{
- status: 200,
- body: ~s[]
- }
- end)
+ assert capture_log(fn ->
+ assert nil ==
+ Instance.get_or_update_favicon(
+ URI.parse("https://long-favicon.example.org/")
+ )
+ end) =~
+ "Instance.get_or_update_favicon(\"long-favicon.example.org\") error: %Postgrex.Error{"
+ end
- assert capture_log(fn ->
- assert nil ==
- Instance.get_or_update_favicon(
- URI.parse("https://long-favicon.example.org/")
- )
- end) =~
- "Instance.get_or_update_favicon(\"long-favicon.example.org\") error: %Postgrex.Error{"
+ test "Handles not getting a favicon URL properly" do
+ Tesla.Mock.mock(fn %{url: "https://no-favicon.example.org/"} ->
+ %Tesla.Env{
+ status: 200,
+ body: ~s[I wil look down and whisper "GNO.."
]
+ }
+ end)
+
+ refute capture_log(fn ->
+ assert nil ==
+ Instance.get_or_update_favicon(
+ URI.parse("https://no-favicon.example.org/")
+ )
+ end) =~ "Instance.scrape_favicon(\"https://no-favicon.example.org/\") error: "
+ end
end
end
diff --git a/test/web/mastodon_api/controllers/search_controller_test.exs b/test/web/mastodon_api/controllers/search_controller_test.exs
index 24d1959f8..04dc6f445 100644
--- a/test/web/mastodon_api/controllers/search_controller_test.exs
+++ b/test/web/mastodon_api/controllers/search_controller_test.exs
@@ -282,18 +282,18 @@ test "search fetches remote statuses and prefers them over other results", %{con
capture_log(fn ->
{:ok, %{id: activity_id}} =
CommonAPI.post(insert(:user), %{
- status: "check out https://shitposter.club/notice/2827873"
+ status: "check out http://mastodon.example.org/@admin/99541947525187367"
})
results =
conn
- |> get("/api/v1/search?q=https://shitposter.club/notice/2827873")
+ |> get("/api/v1/search?q=http://mastodon.example.org/@admin/99541947525187367")
|> json_response_and_validate_schema(200)
- [status, %{"id" => ^activity_id}] = results["statuses"]
-
- assert status["uri"] ==
- "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
+ assert [
+ %{"url" => "http://mastodon.example.org/@admin/99541947525187367"},
+ %{"id" => ^activity_id}
+ ] = results["statuses"]
end)
end
diff --git a/test/web/mastodon_api/controllers/status_controller_test.exs b/test/web/mastodon_api/controllers/status_controller_test.exs
index f221884e7..633a25e50 100644
--- a/test/web/mastodon_api/controllers/status_controller_test.exs
+++ b/test/web/mastodon_api/controllers/status_controller_test.exs
@@ -4,9 +4,9 @@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
use Pleroma.Web.ConnCase
+ use Oban.Testing, repo: Pleroma.Repo
alias Pleroma.Activity
- alias Pleroma.ActivityExpiration
alias Pleroma.Config
alias Pleroma.Conversation.Participation
alias Pleroma.Object
@@ -29,8 +29,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
setup do: oauth_access(["write:statuses"])
test "posting a status does not increment reblog_count when relaying", %{conn: conn} do
- Pleroma.Config.put([:instance, :federating], true)
- Pleroma.Config.get([:instance, :allow_relay], true)
+ Config.put([:instance, :federating], true)
+ Config.get([:instance, :allow_relay], true)
response =
conn
@@ -103,7 +103,9 @@ test "posting a status", %{conn: conn} do
# An activity that will expire:
# 2 hours
- expires_in = 120 * 60
+ expires_in = 2 * 60 * 60
+
+ expires_at = DateTime.add(DateTime.utc_now(), expires_in)
conn_four =
conn
@@ -113,29 +115,22 @@ test "posting a status", %{conn: conn} do
"expires_in" => expires_in
})
- assert fourth_response =
- %{"id" => fourth_id} = json_response_and_validate_schema(conn_four, 200)
+ assert %{"id" => fourth_id} = json_response_and_validate_schema(conn_four, 200)
- assert activity = Activity.get_by_id(fourth_id)
- assert expiration = ActivityExpiration.get_by_activity_id(fourth_id)
+ assert Activity.get_by_id(fourth_id)
- estimated_expires_at =
- NaiveDateTime.utc_now()
- |> NaiveDateTime.add(expires_in)
- |> NaiveDateTime.truncate(:second)
-
- # This assert will fail if the test takes longer than a minute. I sure hope it never does:
- assert abs(NaiveDateTime.diff(expiration.scheduled_at, estimated_expires_at, :second)) < 60
-
- assert fourth_response["pleroma"]["expires_at"] ==
- NaiveDateTime.to_iso8601(expiration.scheduled_at)
+ assert_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredActivity,
+ args: %{activity_id: fourth_id},
+ scheduled_at: expires_at
+ )
end
test "it fails to create a status if `expires_in` is less or equal than an hour", %{
conn: conn
} do
- # 1 hour
- expires_in = 60 * 60
+ # 1 minute
+ expires_in = 1 * 60
assert %{"error" => "Expiry date is too soon"} =
conn
@@ -146,8 +141,8 @@ test "it fails to create a status if `expires_in` is less or equal than an hour"
})
|> json_response_and_validate_schema(422)
- # 30 minutes
- expires_in = 30 * 60
+ # 5 minutes
+ expires_in = 5 * 60
assert %{"error" => "Expiry date is too soon"} =
conn
@@ -160,8 +155,8 @@ test "it fails to create a status if `expires_in` is less or equal than an hour"
end
test "Get MRF reason when posting a status is rejected by one", %{conn: conn} do
- Pleroma.Config.put([:mrf_keyword, :reject], ["GNO"])
- Pleroma.Config.put([:mrf, :policies], [Pleroma.Web.ActivityPub.MRF.KeywordPolicy])
+ Config.put([:mrf_keyword, :reject], ["GNO"])
+ Config.put([:mrf, :policies], [Pleroma.Web.ActivityPub.MRF.KeywordPolicy])
assert %{"error" => "[KeywordPolicy] Matches with rejected keyword"} =
conn
@@ -1146,6 +1141,52 @@ test "max pinned statuses", %{conn: conn, user: user, activity: activity_one} do
|> post("/api/v1/statuses/#{activity_two.id}/pin")
|> json_response_and_validate_schema(400)
end
+
+ test "on pin removes deletion job, on unpin reschedule deletion" do
+ %{conn: conn} = oauth_access(["write:accounts", "write:statuses"])
+ expires_in = 2 * 60 * 60
+
+ expires_at = DateTime.add(DateTime.utc_now(), expires_in)
+
+ assert %{"id" => id} =
+ conn
+ |> put_req_header("content-type", "application/json")
+ |> post("api/v1/statuses", %{
+ "status" => "oolong",
+ "expires_in" => expires_in
+ })
+ |> json_response_and_validate_schema(200)
+
+ assert_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredActivity,
+ args: %{activity_id: id},
+ scheduled_at: expires_at
+ )
+
+ assert %{"id" => ^id, "pinned" => true} =
+ conn
+ |> put_req_header("content-type", "application/json")
+ |> post("/api/v1/statuses/#{id}/pin")
+ |> json_response_and_validate_schema(200)
+
+ refute_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredActivity,
+ args: %{activity_id: id},
+ scheduled_at: expires_at
+ )
+
+ assert %{"id" => ^id, "pinned" => false} =
+ conn
+ |> put_req_header("content-type", "application/json")
+ |> post("/api/v1/statuses/#{id}/unpin")
+ |> json_response_and_validate_schema(200)
+
+ assert_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredActivity,
+ args: %{activity_id: id},
+ scheduled_at: expires_at
+ )
+ end
end
describe "cards" do
@@ -1681,19 +1722,17 @@ test "returns the favorites of a user" do
test "expires_at is nil for another user" do
%{conn: conn, user: user} = oauth_access(["read:statuses"])
+ expires_at = DateTime.add(DateTime.utc_now(), 1_000_000)
{:ok, activity} = CommonAPI.post(user, %{status: "foobar", expires_in: 1_000_000})
- expires_at =
- activity.id
- |> ActivityExpiration.get_by_activity_id()
- |> Map.get(:scheduled_at)
- |> NaiveDateTime.to_iso8601()
-
- assert %{"pleroma" => %{"expires_at" => ^expires_at}} =
+ assert %{"pleroma" => %{"expires_at" => a_expires_at}} =
conn
|> get("/api/v1/statuses/#{activity.id}")
|> json_response_and_validate_schema(:ok)
+ {:ok, a_expires_at, 0} = DateTime.from_iso8601(a_expires_at)
+ assert DateTime.diff(expires_at, a_expires_at) == 0
+
%{conn: conn} = oauth_access(["read:statuses"])
assert %{"pleroma" => %{"expires_at" => nil}} =
diff --git a/test/web/mastodon_api/views/account_view_test.exs b/test/web/mastodon_api/views/account_view_test.exs
index 3d70d460c..6e9ab62ee 100644
--- a/test/web/mastodon_api/views/account_view_test.exs
+++ b/test/web/mastodon_api/views/account_view_test.exs
@@ -116,9 +116,6 @@ test "is nil when :instances_favicons is disabled", %{user: user} do
end
end
- test "Favicon when :instance_favicons is enabled" do
- end
-
test "Represent the user account for the account owner" do
user = insert(:user)
diff --git a/test/web/metadata/metadata_test.exs b/test/web/metadata/metadata_test.exs
index 3f8b29e58..9d3121b7b 100644
--- a/test/web/metadata/metadata_test.exs
+++ b/test/web/metadata/metadata_test.exs
@@ -22,4 +22,13 @@ test "for local user" do
""
end
end
+
+ describe "no metadata for private instances" do
+ test "for local user" do
+ clear_config([:instance, :public], false)
+ user = insert(:user, bio: "This is my secret fedi account bio")
+
+ assert "" = Pleroma.Web.Metadata.build_tags(%{user: user})
+ end
+ end
end
diff --git a/test/web/oauth/token_test.exs b/test/web/oauth/token_test.exs
index 40d71eb59..c88b9cc98 100644
--- a/test/web/oauth/token_test.exs
+++ b/test/web/oauth/token_test.exs
@@ -69,17 +69,4 @@ test "deletes all tokens of a user" do
assert tokens == 2
end
-
- test "deletes expired tokens" do
- insert(:oauth_token, valid_until: Timex.shift(Timex.now(), days: -3))
- insert(:oauth_token, valid_until: Timex.shift(Timex.now(), days: -3))
- t3 = insert(:oauth_token)
- t4 = insert(:oauth_token, valid_until: Timex.shift(Timex.now(), minutes: 10))
- {tokens, _} = Token.delete_expired_tokens()
- assert tokens == 2
- available_tokens = Pleroma.Repo.all(Token)
-
- token_ids = available_tokens |> Enum.map(& &1.id)
- assert token_ids == [t3.id, t4.id]
- end
end
diff --git a/test/web/twitter_api/password_controller_test.exs b/test/web/twitter_api/password_controller_test.exs
index 231a46c67..a5e9e2178 100644
--- a/test/web/twitter_api/password_controller_test.exs
+++ b/test/web/twitter_api/password_controller_test.exs
@@ -37,7 +37,7 @@ test "it shows password reset form", %{conn: conn} do
test "it returns HTTP 200", %{conn: conn} do
user = insert(:user)
{:ok, token} = PasswordResetToken.create_token(user)
- {:ok, _access_token} = Token.create_token(insert(:oauth_app), user, %{})
+ {:ok, _access_token} = Token.create(insert(:oauth_app), user, %{})
params = %{
"password" => "test",
@@ -62,7 +62,7 @@ test "it sets password_reset_pending to false", %{conn: conn} do
user = insert(:user, password_reset_pending: true)
{:ok, token} = PasswordResetToken.create_token(user)
- {:ok, _access_token} = Token.create_token(insert(:oauth_app), user, %{})
+ {:ok, _access_token} = Token.create(insert(:oauth_app), user, %{})
params = %{
"password" => "test",
diff --git a/test/web/twitter_api/remote_follow_controller_test.exs b/test/web/twitter_api/remote_follow_controller_test.exs
index f7e54c26a..3852c7ce9 100644
--- a/test/web/twitter_api/remote_follow_controller_test.exs
+++ b/test/web/twitter_api/remote_follow_controller_test.exs
@@ -227,7 +227,7 @@ test "follows", %{conn: conn} do
}
)
- {:ok, %{token: token}} = MFA.Token.create_token(user)
+ {:ok, %{token: token}} = MFA.Token.create(user)
user2 = insert(:user)
otp_token = TOTP.generate_token(otp_secret)
@@ -256,7 +256,7 @@ test "returns error when auth code is incorrect", %{conn: conn} do
}
)
- {:ok, %{token: token}} = MFA.Token.create_token(user)
+ {:ok, %{token: token}} = MFA.Token.create(user)
user2 = insert(:user)
otp_token = TOTP.generate_token(TOTP.generate_secret())
diff --git a/test/workers/cron/clear_oauth_token_worker_test.exs b/test/workers/cron/clear_oauth_token_worker_test.exs
deleted file mode 100644
index 67836f34f..000000000
--- a/test/workers/cron/clear_oauth_token_worker_test.exs
+++ /dev/null
@@ -1,22 +0,0 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
-# SPDX-License-Identifier: AGPL-3.0-only
-
-defmodule Pleroma.Workers.Cron.ClearOauthTokenWorkerTest do
- use Pleroma.DataCase
-
- import Pleroma.Factory
- alias Pleroma.Workers.Cron.ClearOauthTokenWorker
-
- setup do: clear_config([:oauth2, :clean_expired_tokens])
-
- test "deletes expired tokens" do
- insert(:oauth_token,
- valid_until: NaiveDateTime.add(NaiveDateTime.utc_now(), -60 * 10)
- )
-
- Pleroma.Config.put([:oauth2, :clean_expired_tokens], true)
- ClearOauthTokenWorker.perform(%Oban.Job{})
- assert Pleroma.Repo.all(Pleroma.Web.OAuth.Token) == []
- end
-end
diff --git a/test/workers/cron/purge_expired_activities_worker_test.exs b/test/workers/cron/purge_expired_activities_worker_test.exs
deleted file mode 100644
index d1acd9ae6..000000000
--- a/test/workers/cron/purge_expired_activities_worker_test.exs
+++ /dev/null
@@ -1,84 +0,0 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
-# SPDX-License-Identifier: AGPL-3.0-only
-
-defmodule Pleroma.Workers.Cron.PurgeExpiredActivitiesWorkerTest do
- use Pleroma.DataCase
-
- alias Pleroma.ActivityExpiration
- alias Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker
-
- import Pleroma.Factory
- import ExUnit.CaptureLog
-
- setup do
- clear_config([ActivityExpiration, :enabled])
- end
-
- test "deletes an expiration activity" do
- Pleroma.Config.put([ActivityExpiration, :enabled], true)
- activity = insert(:note_activity)
-
- naive_datetime =
- NaiveDateTime.add(
- NaiveDateTime.utc_now(),
- -:timer.minutes(2),
- :millisecond
- )
-
- expiration =
- insert(
- :expiration_in_the_past,
- %{activity_id: activity.id, scheduled_at: naive_datetime}
- )
-
- Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker.perform(%Oban.Job{})
-
- refute Pleroma.Repo.get(Pleroma.Activity, activity.id)
- refute Pleroma.Repo.get(Pleroma.ActivityExpiration, expiration.id)
- end
-
- test "works with ActivityExpirationPolicy" do
- Pleroma.Config.put([ActivityExpiration, :enabled], true)
-
- clear_config([:mrf, :policies], Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy)
-
- user = insert(:user)
-
- days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365)
-
- {:ok, %{id: id} = activity} = Pleroma.Web.CommonAPI.post(user, %{status: "cofe"})
-
- past_date =
- NaiveDateTime.utc_now() |> Timex.shift(days: -days) |> NaiveDateTime.truncate(:second)
-
- activity
- |> Repo.preload(:expiration)
- |> Map.get(:expiration)
- |> Ecto.Changeset.change(%{scheduled_at: past_date})
- |> Repo.update!()
-
- Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker.perform(%Oban.Job{})
-
- assert [%{data: %{"type" => "Delete", "deleted_activity_id" => ^id}}] =
- Pleroma.Repo.all(Pleroma.Activity)
- end
-
- describe "delete_activity/1" do
- test "adds log message if activity isn't find" do
- assert capture_log([level: :error], fn ->
- PurgeExpiredActivitiesWorker.delete_activity(%ActivityExpiration{
- activity_id: "test-activity"
- })
- end) =~ "Couldn't delete expired activity: not found activity"
- end
-
- test "adds log message if actor isn't find" do
- assert capture_log([level: :error], fn ->
- PurgeExpiredActivitiesWorker.delete_activity(%ActivityExpiration{
- activity_id: "test-activity"
- })
- end) =~ "Couldn't delete expired activity: not found activity"
- end
- end
-end
diff --git a/test/workers/purge_expired_activity_test.exs b/test/workers/purge_expired_activity_test.exs
new file mode 100644
index 000000000..b5938776d
--- /dev/null
+++ b/test/workers/purge_expired_activity_test.exs
@@ -0,0 +1,59 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Workers.PurgeExpiredActivityTest do
+ use Pleroma.DataCase, async: true
+ use Oban.Testing, repo: Pleroma.Repo
+
+ import Pleroma.Factory
+
+ alias Pleroma.Workers.PurgeExpiredActivity
+
+ test "enqueue job" do
+ activity = insert(:note_activity)
+
+ assert {:ok, _} =
+ PurgeExpiredActivity.enqueue(%{
+ activity_id: activity.id,
+ expires_at: DateTime.add(DateTime.utc_now(), 3601)
+ })
+
+ assert_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredActivity,
+ args: %{activity_id: activity.id}
+ )
+
+ assert {:ok, _} =
+ perform_job(Pleroma.Workers.PurgeExpiredActivity, %{activity_id: activity.id})
+
+ assert %Oban.Job{} = Pleroma.Workers.PurgeExpiredActivity.get_expiration(activity.id)
+ end
+
+ test "error if user was not found" do
+ activity = insert(:note_activity)
+
+ assert {:ok, _} =
+ PurgeExpiredActivity.enqueue(%{
+ activity_id: activity.id,
+ expires_at: DateTime.add(DateTime.utc_now(), 3601)
+ })
+
+ user = Pleroma.User.get_by_ap_id(activity.actor)
+ Pleroma.Repo.delete(user)
+
+ assert {:error, :user_not_found} =
+ perform_job(Pleroma.Workers.PurgeExpiredActivity, %{activity_id: activity.id})
+ end
+
+ test "error if actiivity was not found" do
+ assert {:ok, _} =
+ PurgeExpiredActivity.enqueue(%{
+ activity_id: "some_id",
+ expires_at: DateTime.add(DateTime.utc_now(), 3601)
+ })
+
+ assert {:error, :activity_not_found} =
+ perform_job(Pleroma.Workers.PurgeExpiredActivity, %{activity_id: "some_if"})
+ end
+end
diff --git a/test/workers/purge_expired_token_test.exs b/test/workers/purge_expired_token_test.exs
new file mode 100644
index 000000000..fb7708c3f
--- /dev/null
+++ b/test/workers/purge_expired_token_test.exs
@@ -0,0 +1,51 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Workers.PurgeExpiredTokenTest do
+ use Pleroma.DataCase, async: true
+ use Oban.Testing, repo: Pleroma.Repo
+
+ import Pleroma.Factory
+
+ setup do: clear_config([:oauth2, :clean_expired_tokens], true)
+
+ test "purges expired oauth token" do
+ user = insert(:user)
+ app = insert(:oauth_app)
+
+ {:ok, %{id: id}} = Pleroma.Web.OAuth.Token.create(app, user)
+
+ assert_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredToken,
+ args: %{token_id: id, mod: Pleroma.Web.OAuth.Token}
+ )
+
+ assert {:ok, %{id: ^id}} =
+ perform_job(Pleroma.Workers.PurgeExpiredToken, %{
+ token_id: id,
+ mod: Pleroma.Web.OAuth.Token
+ })
+
+ assert Repo.aggregate(Pleroma.Web.OAuth.Token, :count, :id) == 0
+ end
+
+ test "purges expired mfa token" do
+ authorization = insert(:oauth_authorization)
+
+ {:ok, %{id: id}} = Pleroma.MFA.Token.create(authorization.user, authorization)
+
+ assert_enqueued(
+ worker: Pleroma.Workers.PurgeExpiredToken,
+ args: %{token_id: id, mod: Pleroma.MFA.Token}
+ )
+
+ assert {:ok, %{id: ^id}} =
+ perform_job(Pleroma.Workers.PurgeExpiredToken, %{
+ token_id: id,
+ mod: Pleroma.MFA.Token
+ })
+
+ assert Repo.aggregate(Pleroma.MFA.Token, :count, :id) == 0
+ end
+end