Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
30d80a0
Refactor: Use builder in test
poppingmoon Apr 17, 2023
f298bc0
Add: Support v12.77.0
poppingmoon Apr 17, 2023
799d8d5
Add: Support v12.77.1
poppingmoon Apr 9, 2023
0c05d5d
Add: Add gallery related endpoints
poppingmoon Apr 10, 2023
bf3dc2e
Add: Support v12.79.0
poppingmoon Apr 11, 2023
ea5065d
Add: Support v12.79.2
poppingmoon Apr 11, 2023
fca0ce5
Add: Partially support v12.80.0
poppingmoon Apr 11, 2023
0e8bb73
Add: Support v12.81.0
poppingmoon Apr 11, 2023
7bd077b
Add: Support v12.82.0
poppingmoon Apr 11, 2023
e35ad27
Add: Partially support v12.88.0
poppingmoon Apr 11, 2023
a1652df
Add: Support v12.89.0
poppingmoon Apr 12, 2023
9b011c2
Add: Support v12.89.1
poppingmoon Apr 12, 2023
2bc74da
CI: Set allowedPrivateNetworks
poppingmoon Apr 12, 2023
21a3c61
Add: Support v12.91.0
poppingmoon Apr 12, 2023
13163d2
Add: Support v12.92.0
poppingmoon Apr 12, 2023
fda6b40
Add: Partially support v12.93.0
poppingmoon Apr 13, 2023
185470a
Add: Support v12.95.0
poppingmoon Apr 13, 2023
3e22cce
Add: Support v12.96.0
poppingmoon Apr 13, 2023
81d04a2
Add: Support v12.98.0
poppingmoon Apr 13, 2023
46d182a
Add: Partially support v12.99.0
poppingmoon Apr 13, 2023
cdf4a82
Add: Support v12.102.0
poppingmoon Apr 13, 2023
d0b367e
Add: Support v12.104.0
poppingmoon Apr 13, 2023
d179d3c
Add: Support v12.105.0
poppingmoon Apr 13, 2023
2997efa
Add: Support v12.106.0
poppingmoon Apr 14, 2023
e9c674d
Add: Support v12.107.0
poppingmoon Apr 14, 2023
2c867b0
Add: Support v12.108.0
poppingmoon Apr 16, 2023
4541b38
Add: Support v12.109.0
poppingmoon Apr 16, 2023
6826b18
Change: Use HttpClient in streaming tests and examples for making req…
poppingmoon Apr 16, 2023
0181dbe
Change: Remove Client trait from WebSocketClient
poppingmoon Apr 16, 2023
968de8e
Add: Add missing fields in Signin
poppingmoon Apr 16, 2023
ff3eada
Add: Support v12.111.0
poppingmoon Apr 16, 2023
c508618
Add: Partially support v12.112.0
poppingmoon Apr 16, 2023
b76002e
Add: Support v12.112.3
poppingmoon Apr 17, 2023
24a6f68
Add: Add missing fields for Meta
poppingmoon May 2, 2023
4f9238f
Fix: Fix typo
poppingmoon May 4, 2023
735b150
Fix: Rename field banner_id to banner_url for Channel model
poppingmoon May 6, 2023
06d5452
CI: Bump postgres to 15
poppingmoon May 2, 2023
8def72a
CI: Set NODE_ENV to development
poppingmoon May 2, 2023
064f880
CI: Update scripts to be compatible with Misskey v13.0.0
poppingmoon May 2, 2023
ffaeb2e
CI: Assign moderator role to the root user
poppingmoon May 2, 2023
c75736a
Add: Update Cargo.toml for v13.0.0
poppingmoon May 2, 2023
ae13fc3
Add: Add roles related APIs
poppingmoon May 2, 2023
deb431f
Add: Add flash related APIs
poppingmoon May 2, 2023
2d23067
Add: Support v13.0.0
poppingmoon May 2, 2023
e6affb4
Add: Support v13.1.0
poppingmoon May 3, 2023
e4d29e2
Add: Support v13.1.1
poppingmoon May 3, 2023
31e72ff
Change: Move streaming/emoji.rs to streaming/broadcast/emoji_added.rs
poppingmoon May 4, 2023
b50b363
Add: Support v13.2.3
poppingmoon May 4, 2023
c8e8796
Add: Support v13.2.4
poppingmoon May 4, 2023
feedefd
Add: Support v13.3.0
poppingmoon May 4, 2023
3a8df55
Add: Support v13.3.2
poppingmoon May 4, 2023
1ce628d
Add: Support v13.4.0
poppingmoon May 4, 2023
e5c3233
Add: Update Cargo.toml for v13.7.0
poppingmoon May 4, 2023
0d6ebb7
Change: Drop messaging and group
poppingmoon May 4, 2023
d57a792
Add: Support v13.7.0
poppingmoon May 5, 2023
4371171
Add: Support v13.8.0
poppingmoon May 5, 2023
20bbc32
Add: Support v13.9.0
poppingmoon May 5, 2023
592f5e9
Add: Update Cargo.toml for v13.10.0
poppingmoon May 5, 2023
5b8308a
Add: Add renote-mute related APIs
poppingmoon May 5, 2023
4c96a02
Add: Add clips/favorite related APIs
poppingmoon May 5, 2023
45dd66e
Add: Support v13.10.0
poppingmoon May 5, 2023
0342f28
Add: Support v13.10.3
poppingmoon May 5, 2023
b08e86c
CI: Bump redis to 7
poppingmoon May 5, 2023
decb77c
Add: Partially support v13.11.0
poppingmoon May 6, 2023
46fcad2
Add: Support v13.11.2
poppingmoon May 6, 2023
d1f3d7a
Add: Support v13.11.3
poppingmoon May 6, 2023
719c6ed
Add: Support v13.12.0
poppingmoon May 10, 2023
a43615f
Add: Support v13.12.2
poppingmoon May 12, 2023
f5dc545
Add: Support v13.13.0
poppingmoon Jun 7, 2023
0396a29
Add: Support v13.13.2
poppingmoon Jun 13, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ jobs:
- id: setup_env
run: ./ci/testenv/setup.sh
env:
MISSKEY_IMAGE: 'misskey/misskey:12.75.1'
MISSKEY_IMAGE: 'misskey/misskey:13.13.2'
MISSKEY_ID: aid
- run: cargo test --features 12-75-0
- run: cargo test --features 13-13-2
timeout-minutes: 15
env:
TEST_API_URL: http://localhost:3000/api/
Expand Down
92 changes: 92 additions & 0 deletions .github/workflows/flaky.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,98 @@ jobs:
strategy:
matrix:
include:
- image: 'misskey/misskey:13.13.2'
flags: --features 13-13-2
- image: 'misskey/misskey:13.13.1'
flags: --features 13-13-0
- image: 'misskey/misskey:13.12.2'
flags: --features 13-12-2
- image: 'misskey/misskey:13.12.0'
flags: --features 13-12-0
- image: 'misskey/misskey:13.11.3'
flags: --features 13-11-3
- image: 'misskey/misskey:13.11.2'
flags: --features 13-11-2
- image: 'misskey/misskey:13.11.0'
flags: --features 13-11-0
- image: 'misskey/misskey:13.10.3'
flags: --features 13-10-3
- image: 'misskey/misskey:13.10.0'
flags: --features 13-10-0
- image: 'misskey/misskey:13.9.0'
flags: --features 13-9-0
- image: 'misskey/misskey:13.8.0'
flags: --features 13-8-0
- image: 'misskey/misskey:13.7.0'
flags: --features 13-7-0
- image: 'misskey/misskey:13.4.0'
flags: --features 13-4-0
- image: 'misskey/misskey:13.3.2'
flags: --features 13-3-2
- image: 'misskey/misskey:13.3.0'
flags: --features 13-3-0
- image: 'misskey/misskey:13.2.5'
flags: --features 13-2-4
- image: 'misskey/misskey:13.2.3'
flags: --features 13-2-3
- image: 'misskey/misskey:13.1.1'
flags: --features 13-1-1
- image: 'misskey/misskey:13.1.0'
flags: --features 13-1-0
- image: 'misskey/misskey:13.0.0'
flags: --features 13-0-0
- image: 'misskey/misskey:12.112.3'
flags: --features 12-112-3
- image: 'misskey/misskey:12.112.2'
flags: --features 12-112-0
- image: 'misskey/misskey:12.111.0'
flags: --features 12-111-0
- image: 'misskey/misskey:12.109.2'
flags: --features 12-109-0
- image: 'misskey/misskey:12.108.1'
flags: --features 12-108-0
- image: 'misskey/misskey:12.107.0'
flags: --features 12-107-0
- image: 'misskey/misskey:12.106.0'
flags: --features 12-106-0
- image: 'misskey/misskey:12.105.0'
flags: --features 12-105-0
- image: 'misskey/misskey:12.102.0'
flags: --features 12-102-0
- image: 'misskey/misskey:12.99.1'
flags: --features 12-99-0
- image: 'misskey/misskey:12.98.0'
flags: --features 12-98-0
- image: 'misskey/misskey:12.97.0'
flags: --features 12-96-0
- image: 'misskey/misskey:12.95.0'
flags: --features 12-95-0
- image: 'misskey/misskey:12.93.0'
flags: --features 12-93-0
- image: 'misskey/misskey:12.92.0'
flags: --features 12-92-0
- image: 'misskey/misskey:12.91.0'
flags: --features 12-91-0
- image: 'misskey/misskey:12.89.1'
flags: --features 12-89-1
- image: 'misskey/misskey:12.89.0'
flags: --features 12-89-0
- image: 'misskey/misskey:12.88.0'
flags: --features 12-88-0
- image: 'misskey/misskey:12.82.0'
flags: --features 12-82-0
- image: 'misskey/misskey:12.81.0'
flags: --features 12-81-0
- image: 'misskey/misskey:12.80.0'
flags: --features 12-80-0
- image: 'misskey/misskey:12.79.2'
flags: --features 12-79-2
- image: 'misskey/misskey:12.79.0'
flags: --features 12-79-0
- image: 'misskey/misskey:12.77.1'
flags: --features 12-77-1
- image: 'misskey/misskey:12.77.0'
flags: --features 12-77-0
- image: 'misskey/misskey:12.75.0'
flags: --features 12-75-0
- image: 'misskey/misskey:12.71.0'
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/unstable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ jobs:
- id: setup_env
run: ./ci/testenv/setup.sh
env:
MISSKEY_IMAGE: 'misskey/misskey:12.75.1'
MISSKEY_IMAGE: 'misskey/misskey:13.13.2'
MISSKEY_ID: aid
- run: cargo test --features 12-75-0
- run: cargo test --features 13-13-2
timeout-minutes: 15
env:
TEST_API_URL: http://localhost:3000/api/
Expand Down
4 changes: 2 additions & 2 deletions ci/testenv/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ services:

redis:
restart: always
image: redis:4.0-alpine
image: redis:7-alpine

db:
restart: always
image: postgres:11.2-alpine
image: postgres:15-alpine
environment:
- POSTGRES_PASSWORD=misskey-test
- POSTGRES_USER=misskey-test
Expand Down
66 changes: 63 additions & 3 deletions ci/testenv/get-token/get-token.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@ until nc -z web 3000; do
sleep 1
done

ADMIN_TOKEN=$(
ADMIN_DATA=$(
curl -fsS -XPOST -H 'Content-Type: application/json' \
--data '{"username":"admin","password":"admin"}' \
http://web:3000/api/admin/accounts/create | jq -r .token
http://web:3000/api/admin/accounts/create
)

ADMIN_TOKEN=$(echo "$ADMIN_DATA" | jq -r .token)
ADMIN_ID=$(echo "$ADMIN_DATA" | jq -r .id)

USER_DATA=$(
curl -fsS -XPOST -H 'Content-Type: application/json' \
--data '{"username":"testuser","password":"testuser"}' \
Expand All @@ -19,9 +22,66 @@ USER_DATA=$(
USER_TOKEN=$(echo "$USER_DATA" | jq -r .token)
USER_ID=$(echo "$USER_DATA" | jq -r .id)

# endpoint `admin/moderators/add` is removed in Misskey v13.0.0
curl -fsS -XPOST -H 'Content-Type: application/json' \
--data '{"i":"'"${ADMIN_TOKEN}"'","userId":"'"${USER_ID}"'"}' \
http://web:3000/api/admin/moderators/add || exit 1
http://web:3000/api/admin/moderators/add ||
(
# create and assign moderator role
ROLE_ID=$(
curl -fsS -XPOST -H 'Content-Type: application/json' \
--data '{
"i": "'"${ADMIN_TOKEN}"'",
"name": "Moderator",
"description": "",
"color": "",
"iconUrl": null,
"target": "manual",
"condFormula": {},
"isPublic": false,
"isModerator": true,
"isAdministrator": false,
"asBadge": false,
"canEditMembersByModerator": false,
"displayOrder": 0,
"policies": {
"canSearchNotes": {
"value": true,
"priority": 0,
"useDefault": false
},
"pinLimit": {
"value": 1000,
"priority": 0,
"useDefault": false
},
"clipLimit": {
"value": 1000,
"priority": 0,
"useDefault": false
},
"antennaLimit": {
"value": 1000,
"priority": 0,
"useDefault": false
},
"userListLimit": {
"value": 1000,
"priority": 0,
"useDefault": false
}
}
}' \
http://web:3000/api/admin/roles/create | jq -r .id \
) &&
curl -fsS -XPOST -H 'Content-Type: application/json' \
--data '{"i":"'"${ADMIN_TOKEN}"'", "roleId": "'"${ROLE_ID}"'", "userId":"'"${ADMIN_ID}"'"}' \
http://web:3000/api/admin/roles/assign &&
curl -fsS -XPOST -H 'Content-Type: application/json' \
--data '{"i":"'"${ADMIN_TOKEN}"'", "roleId": "'"${ROLE_ID}"'", "userId":"'"${USER_ID}"'"}' \
http://web:3000/api/admin/roles/assign
) ||
exit 1

echo "::set-output name=admin_token::$ADMIN_TOKEN"
echo "::set-output name=user_token::$USER_TOKEN"
2 changes: 1 addition & 1 deletion ci/testenv/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ readonly MAX_RETRY=5
count=0
while :; do
docker-compose build
docker-compose run --rm web yarn run init
docker-compose run --rm web yarn run init || docker-compose run --rm web pnpm run init
docker-compose up -d web
if docker-compose run --rm get-token; then
break
Expand Down
3 changes: 3 additions & 0 deletions ci/testenv/web/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@ ARG MISSKEY_IMAGE
FROM ${MISSKEY_IMAGE}
ARG MISSKEY_ID
COPY default.yml /misskey/.config/default.yml
USER root
RUN echo "id: '${MISSKEY_ID}'" >> /misskey/.config/default.yml
# Disable rate limit
ENV NODE_ENV=development
3 changes: 3 additions & 0 deletions ci/testenv/web/default.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
url: http://localhost:3000/
port: 3000
allowedPrivateNetworks: [
127.0.0.1/32
]

db:
host: db
Expand Down
2 changes: 1 addition & 1 deletion example/follow-back/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ edition = "2021"
publish = false

[dependencies]
misskey = { path = "../../misskey", version = "0.2.0", features = ["websocket-client"] }
misskey = { path = "../../misskey", version = "0.2.0", features = ["http-client", "websocket-client"] }
tokio = { version = "1.0", features = ["full"] }
structopt = "0.3.16"
url = "2.1.1"
Expand Down
15 changes: 9 additions & 6 deletions example/follow-back/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use anyhow::Result;
use futures::stream::TryStreamExt;
use misskey::prelude::*;
use misskey::streaming::channel::main::MainStreamEvent;
use misskey::WebSocketClient;
use misskey::{HttpClient, WebSocketClient};
use structopt::StructOpt;
use url::Url;

Expand All @@ -18,15 +18,18 @@ struct Opt {
async fn main() -> Result<()> {
let opt = Opt::from_args();

// Build a client and connect to Misskey.
let client = WebSocketClient::builder(opt.url)
// Create `HttpClient`.
let http_client = HttpClient::with_token(opt.url.clone(), opt.i.clone())?;

// Build `WebSocketClient` and connect to Misskey.
let ws_client = WebSocketClient::builder(opt.url)
.token(opt.i)
.connect()
.await?;

// Connect to the main stream.
// the main stream is a channel that streams events about the connected account, such as notifications.
let mut stream = client.main_stream().await?;
let mut stream = ws_client.main_stream().await?;

// Wait for the next event using `try_next` method from `TryStreamExt`.
while let Some(event) = stream.try_next().await? {
Expand All @@ -36,8 +39,8 @@ async fn main() -> Result<()> {
println!("followed from @{}", user.username);

// Follow back `user` if you haven't already.
if !client.is_following(&user).await? {
client.follow(&user).await?;
if !http_client.is_following(&user).await? {
http_client.follow(&user).await?;
}
}
// other events are just ignored
Expand Down
2 changes: 1 addition & 1 deletion example/ping-pong/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ edition = "2021"
publish = false

[dependencies]
misskey = { path = "../../misskey", version = "0.2.0", features = ["websocket-client"] }
misskey = { path = "../../misskey", version = "0.2.0", features = ["http-client", "websocket-client"] }
tokio = { version = "1.0", features = ["full"] }
structopt = "0.3.16"
url = "2.1.1"
Expand Down
13 changes: 8 additions & 5 deletions example/ping-pong/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use futures::stream::TryStreamExt;
use misskey::model::note::Note;
use misskey::prelude::*;
use misskey::streaming::channel::main::MainStreamEvent;
use misskey::WebSocketClient;
use misskey::{HttpClient, WebSocketClient};
use structopt::StructOpt;
use url::Url;

Expand All @@ -19,15 +19,18 @@ struct Opt {
async fn main() -> Result<()> {
let opt = Opt::from_args();

// Build a client and connect to Misskey.
let client = WebSocketClient::builder(opt.url)
// Create `HttpClient`.
let http_client = HttpClient::with_token(opt.url.clone(), opt.i.clone())?;

// Build `WebSocketClient` and connect to Misskey.
let ws_client = WebSocketClient::builder(opt.url)
.token(opt.i)
.connect()
.await?;

// Connect to the main stream.
// the main stream is a channel that streams events about the connected account, such as notifications.
let mut stream = client.main_stream().await?;
let mut stream = ws_client.main_stream().await?;

// Wait for the next event using `try_next` method from `TryStreamExt`.
while let Some(event) = stream.try_next().await? {
Expand All @@ -42,7 +45,7 @@ async fn main() -> Result<()> {
println!("got ping from @{}", user.username);

// Create a pong note as a reply to the mention
client.reply(note_id, "pong").await?;
http_client.reply(note_id, "pong").await?;
}
// other events are just ignored
_ => {}
Expand Down
2 changes: 1 addition & 1 deletion example/streaming/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ edition = "2021"
publish = false

[dependencies]
misskey = { path = "../../misskey", version = "0.2.0", features = ["websocket-client"] }
misskey = { path = "../../misskey", version = "0.2.0", features = ["http-client", "websocket-client"] }
tokio = { version = "1.0", features = ["full"] }
structopt = "0.3.16"
url = "2.1.1"
Expand Down
11 changes: 7 additions & 4 deletions example/streaming/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use anyhow::Result;
use futures::stream::TryStreamExt;
use misskey::prelude::*;
use misskey::WebSocketClient;
use misskey::{HttpClient, WebSocketClient};
use structopt::StructOpt;
use url::Url;

Expand All @@ -17,20 +17,23 @@ struct Opt {
async fn main() -> Result<()> {
let opt = Opt::from_args();

// Create `HttpClient`.
let http_client = HttpClient::with_token(opt.url.clone(), opt.i.clone())?;

// Configure and build a client using `WebSocketClientBuilder`.
let client = WebSocketClient::builder(opt.url)
let ws_client = WebSocketClient::builder(opt.url)
.token(opt.i)
.connect()
.await?;

// Run two asynchronous tasks simultaneously.
futures::try_join!(post(&client), timeline(&client))?;
futures::try_join!(post(&http_client), timeline(&ws_client))?;

Ok(())
}

// Post what you entered
async fn post(client: &WebSocketClient) -> Result<()> {
async fn post(client: &HttpClient) -> Result<()> {
// We use async I/O from `tokio` for now
use tokio::io::{self, AsyncBufReadExt, BufReader};

Expand Down
Loading