Skip to content

Commit 7a547b4

Browse files
authored
Merge pull request #4558 from h3poteto/remove/misskey
Drop Misskey support
2 parents 009c21b + 6386350 commit 7a547b4

File tree

12 files changed

+36
-43
lines changed

12 files changed

+36
-43
lines changed

README.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Whalebird
1+
https://github.com/h3poteto/megalodon/pull/1920# Whalebird
22
[![Build](https://github.com/h3poteto/whalebird-desktop/actions/workflows/build.yml/badge.svg)](https://github.com/h3poteto/whalebird-desktop/actions/workflows/build.yml)
33
[![GitHub release](http://img.shields.io/github/release/h3poteto/whalebird-desktop.svg)](https://github.com/h3poteto/whalebird-desktop/releases)
44
[![Mac App Store](https://img.shields.io/itunes/v/6445864587)](https://apps.apple.com/us/app/whalebird/id6445864587)
@@ -21,7 +21,6 @@ Whalebird is a Fediverse client app for desktop.
2121
- Supporting
2222
- Mastodon
2323
- Pleroma
24-
- Misskey
2524

2625
### Shortcuts
2726

src/main/database.ts

+3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ marker_home BOOLEAN NOT NULL DEFAULT false, \
4141
marker_notifications BOOLEAN NOT NULL DEFAULT true, \
4242
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE)'
4343
).run()
44+
db.prepare(
45+
"DELETE FROM accounts WHERE id IN (SELECT accounts.id FROM accounts INNER JOIN servers ON servers.account_id = accounts.id WHERE servers.sns = 'misskey')"
46+
).run()
4447

4548
return db
4649
}

src/main/db/server.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export const insertServer = (
55
db: Database,
66
baseURL: string,
77
domain: string,
8-
sns: 'mastodon' | 'pleroma' | 'misskey',
8+
sns: 'mastodon' | 'pleroma',
99
accountId: number | null
1010
): Promise<LocalServer> => {
1111
return new Promise((resolve, reject) => {

src/main/index.ts

+20-19
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import {
1818
clipboard
1919
} from 'electron'
2020
import fs from 'fs'
21-
import crypto from 'crypto'
2221
import log from 'electron-log'
2322
import windowStateKeeper from 'electron-window-state'
2423
import simplayer from 'simplayer'
@@ -385,7 +384,7 @@ async function createWindow() {
385384
const args = minimist(process.argv.slice(process.env.NODE_ENV === 'development' ? 2 : 1))
386385
if (args.help) {
387386
console.log(`
388-
Whalebird is Mastodon, Pleroma and Misskey client for desktop.
387+
Whalebird is a Fediverse client for desktop.
389388
390389
Usage
391390
$ whalebird
@@ -446,6 +445,9 @@ ipcMain.handle('add-server', async (_: IpcMainInvokeEvent, domain: string) => {
446445
if (sns === 'friendica') {
447446
return new Promise((_resolve, reject) => reject('friendica is not supported yet'))
448447
}
448+
if (sns === 'misskey') {
449+
return new Promise((_resolve, reject) => reject('misskey is not supported yet'))
450+
}
449451
const server = await insertServer(db, `https://${domain}`, domain, sns, null)
450452
return server
451453
})
@@ -477,13 +479,6 @@ ipcMain.handle('authorize', async (_: IpcMainInvokeEvent, req: AuthorizeRequest)
477479
const client = generator(sns, req.baseURL, null, 'Whalebird', proxy)
478480
const tokenData = await client.fetchAccessToken(req.clientID, req.clientSecret, req.code, 'urn:ietf:wg:oauth:2.0:oob')
479481
let accessToken = tokenData.access_token
480-
if (sns === 'misskey') {
481-
// In misskey, access token is sha256(userToken + clientSecret)
482-
accessToken = crypto
483-
.createHash('sha256')
484-
.update(tokenData.access_token + req.clientSecret, 'utf8')
485-
.digest('hex')
486-
}
487482

488483
const authorizedClient = generator(sns, req.baseURL, accessToken, 'Whalebird', proxy)
489484
const credentials = await authorizedClient.verifyAccountCredentials()
@@ -792,16 +787,22 @@ ipcMain.handle('list-fonts', async (_: IpcMainInvokeEvent) => {
792787
})
793788

794789
// Settings
795-
ipcMain.handle('get-account-setting', async (_: IpcMainInvokeEvent, accountId: number): Promise<Setting> => {
796-
const setting = await getSetting(db, accountId)
797-
return setting
798-
})
799-
800-
ipcMain.handle('update-account-setting', async (_: IpcMainInvokeEvent, setting: Setting): Promise<Setting> => {
801-
console.log(setting)
802-
const res = await createOrUpdateSetting(db, setting)
803-
return res
804-
})
790+
ipcMain.handle(
791+
'get-account-setting',
792+
async (_: IpcMainInvokeEvent, accountId: number): Promise<Setting> => {
793+
const setting = await getSetting(db, accountId)
794+
return setting
795+
}
796+
)
797+
798+
ipcMain.handle(
799+
'update-account-setting',
800+
async (_: IpcMainInvokeEvent, setting: Setting): Promise<Setting> => {
801+
console.log(setting)
802+
const res = await createOrUpdateSetting(db, setting)
803+
return res
804+
}
805+
)
805806

806807
// Cache
807808
ipcMain.handle('get-cache-hashtags', async (_: IpcMainInvokeEvent) => {

src/main/websocket.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { LocalAccount } from '~/src/types/localAccount'
44
import { LocalServer } from '~src/types/localServer'
55

66
const StreamingURL = async (
7-
sns: 'mastodon' | 'pleroma' | 'misskey',
7+
sns: 'mastodon' | 'pleroma',
88
account: LocalAccount,
99
server: LocalServer,
1010
proxy: ProxyConfig | false
@@ -26,7 +26,7 @@ class WebSocket {
2626
public client: MegalodonInterface
2727
public listener: WebSocketInterface | null
2828

29-
constructor(sns: 'mastodon' | 'pleroma' | 'misskey', account: LocalAccount, streamingURL: string, proxy: ProxyConfig | false) {
29+
constructor(sns: 'mastodon' | 'pleroma', account: LocalAccount, streamingURL: string, proxy: ProxyConfig | false) {
3030
const url = streamingURL.replace(/^https:\/\//, 'wss://')
3131
this.client = generator(sns, url, account.accessToken, 'Whalebird', proxy)
3232
this.listener = null

src/renderer/components/Login/Authorize.vue

+2-6
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313
class="authorize-form"
1414
@submit.prevent="authorizeSubmit"
1515
>
16-
<p v-if="$route.query.sns === 'misskey'">{{ $t('authorize.misskey_label') }}</p>
17-
<el-form-item :label="$t('authorize.code_label')" v-else>
16+
<el-form-item :label="$t('authorize.code_label')">
1817
<el-input v-model="authorizeForm.code"></el-input>
1918
</el-form-item>
2019
<!-- Dummy form to guard submitting with enter -->
@@ -65,10 +64,7 @@ export default defineComponent({
6564
6665
const authorizeSubmit = async () => {
6766
submitting.value = true
68-
let code = authorizeForm.code
69-
if (route.query.sns === 'misskey' && route.query.session_token) {
70-
code = route.query.session_token.toString()
71-
}
67+
const code = authorizeForm.code
7268
try {
7369
const localAccount: LocalAccount = await win.ipcRenderer.invoke('authorize', {
7470
serverID: route.query.server_id,

src/renderer/components/Login/LoginForm.vue

+4-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export default defineComponent({
6060
const domain = ref<string>('')
6161
const searching = ref<boolean>(false)
6262
const allowLogin = computed(() => domain.value && form.domainName == domain.value)
63-
const sns = ref<'mastodon' | 'pleroma' | 'misskey'>('mastodon')
63+
const sns = ref<'mastodon' | 'pleroma'>('mastodon')
6464
6565
const rules = reactive<FormRules>({
6666
domainName: [
@@ -120,6 +120,9 @@ export default defineComponent({
120120
if (res === 'friendica') {
121121
throw new Error('Friendica is not supported')
122122
}
123+
if (res === 'misskey') {
124+
throw new Error('Misskey is not supported')
125+
}
123126
sns.value = res
124127
domain.value = cleanDomain
125128
ElMessage({

src/renderer/components/Settings/Filters.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<div id="filters">
33
<h2>{{ $t('settings.filters.title') }}</h2>
44
<div class="new-filter">
5-
<el-button type="primary" :disabled="sns === 'misskey'">
5+
<el-button type="primary">
66
<router-link :to="`/${id}/settings/filters/new`">
77
{{ $t('settings.filters.new.title') }}
88
</router-link>

src/renderer/store/TimelineSpace/Contents/Home.ts

-3
Original file line numberDiff line numberDiff line change
@@ -222,9 +222,6 @@ const actions: ActionTree<HomeState, RootState> = {
222222
if (timeline.length === 0 || timeline[0].id === 'loading-card') {
223223
return
224224
}
225-
if (req.server.sns === 'misskey') {
226-
return
227-
}
228225
const client = generator(req.server.sns, req.server.baseURL, req.account.accessToken, rootState.App.userAgent)
229226
const res = await client.saveMarkers({ home: { last_read_id: timeline[0].id } })
230227
return res.data

src/renderer/store/TimelineSpace/Contents/Notifications.ts

-3
Original file line numberDiff line numberDiff line change
@@ -215,9 +215,6 @@ const actions: ActionTree<NotificationsState, RootState> = {
215215
return
216216
}
217217

218-
if (req.server.sns === 'misskey') {
219-
return
220-
}
221218
const client = generator(req.server.sns, req.server.baseURL, req.account.accessToken, rootState.App.userAgent)
222219
const res = await client.saveMarkers({ notifications: { last_read_id: notifications[0].id } })
223220
if (rootState.TimelineSpace.server!.sns === 'pleroma') {

src/renderer/utils/quoteSupported.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
import { QuoteSupportMastodon } from '~/src/constants/servers/quote'
22

3-
const quoteSupported = (sns: 'mastodon' | 'pleroma' | 'misskey', domain: string): boolean => {
4-
if (sns === 'misskey') {
5-
return true
6-
}
3+
const quoteSupported = (_sns: 'mastodon' | 'pleroma', domain: string): boolean => {
74
if (QuoteSupportMastodon.includes(domain)) {
85
return true
96
}

src/types/localServer.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ export type LocalServer = {
22
id: number
33
baseURL: string
44
domain: string
5-
sns: 'mastodon' | 'pleroma' | 'misskey'
5+
sns: 'mastodon' | 'pleroma'
66
accountId: number | null
77
}

0 commit comments

Comments
 (0)