Skip to content

Instantly share code, notes, and snippets.

View mei23's full-sized avatar
🧡
なのだわ

MeiMei mei23

🧡
なのだわ
View GitHub Profile
@mei23
mei23 / threads_ap_20240322.md
Last active March 23, 2024 00:37
ThreadsのActivityPub Object

ThreadsのActivityPub Object 2024/03/22

取得するには

まず取得するにはちょっとクセがある

  • 該当ユーザーがオプトインしてる必要がある
  • GETに署名を付ける必要がある (MisskeyでもMastodonでもデフォルトで有効なはず)
    • この場合外部からこちらの署名を取得しに来てもらう必要があるため、必然的にインターネットに公開されたサーバーからでないとリクエストできないと思われる。
  • AP対応 (2023/3/22) より前の投稿はおそらく取得できない
  • なんか429を返されることがある。(URLプレビューとかでFacebookとかインスタのプレビュー要求しまっくってるとFacebook系のNWからブロックされる?上記前提条件を満たしてないと非AP要求とみなされてレートでブロックされる?)
@mei23
mei23 / MisskeyForks.md
Last active November 22, 2023 04:22
MisskeyForks.md

Misskey旧バージョンの主なフォーク

Latest release付近のフォークは追いきれないので記載していない
稼働していないもの、主にメンテを目的としていると思われるものは除外

凡例

  • original.version 主な変更
    • Fork (稼働数目安) appName version (識別サンプル) 内容 ※バージョンは最新を記載してるとは限らない

リスト

Misskeyのプロセス設計

Misskeyのデフォルトプロセス

Misskeyのデフォルト (めいすきーは異なる) では、master, workerの2プロセスが上がる。 masterは最初に上がるやつで、主になにもしない。 workerはmasterからforkされるプロセスで、master以外のほぼ全ての仕事を行う。

workerの数

workerの数はconfigのclusterLimitで調整できる (デフォルトは1)。

@mei23
mei23 / hashtags
Last active April 19, 2021 23:27
本文: #𝟝𝔾ℂ𝕠𝕧𝕚𝕕 #5gcovid #5GCOVID
tags: ['#𝟝𝔾ℂ𝕠𝕧𝕚𝕕', '#5gcovid', '#5GCOVID']
Meisskey:
比較:
#𝟝𝔾ℂ𝕠𝕧𝕚𝕕 == #5gcovid == #5GCOVID
tags: ['#𝟝𝔾ℂ𝕠𝕧𝕚𝕕', '#5gcovid', '#5GCOVID']
あくまでコードポイント基準でtagsを添付
Mastodon:
.marquee {
position: relative;
overflow: hidden;
left: 100%;
animation: anim-marquee 10s linear infinite;
}
.marqueeAlternate {
position: relative;
left: 100%;
proxy_cache_path /tmp/nginx_cache_d levels=1:2 keys_zone=cache_d:16m max_size=1g inactive=7d use_temp_path=off;
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name drive.example.tld;
ssl_session_cache shared:ssl_session_cache:10m;
@mei23
mei23 / calc-hash.ts
Last active April 10, 2020 12:08
Calculate hash from file path in Node v10 or later
import * as fs from 'fs';
import * as crypto from 'crypto';
import * as stream from 'stream';
import * as util from 'util';
const pipeline = util.promisify(stream.pipeline);
export async function calcHash(path: string, algorithm: 'md5' | 'sha1' | 'sha256' = 'md5') {
const hash = crypto.createHash(algorithm).setEncoding('hex');
await pipeline(fs.createReadStream(path), hash);
const CHARS = '0123456789abcdef';
function getTime(time: number) {
if (time < 0) time = 0;
if (time === 0) {
return CHARS[0];
}
time += 0x800000000000;
<!doctype html><html><head><meta charset=utf-8>
<meta property="og:title" content="">
<meta property="og:description" content="">
</head>
# Sample Nginx configuration for Misskey
#
# 1. Replace example.tld to your domain
# 2. Copy to /etc/nginx/sites-enabled
# or copy to /etc/nginx/sites-available and symlink from /etc/nginx/sites-ebabled
# For WebSockets
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;