Add version info to help menu in GUI

This commit is contained in:
AnimeDL 2023-07-15 19:12:24 -07:00
parent 7872bc343d
commit b6187c48a8
8 changed files with 33 additions and 2 deletions

View file

@ -6,6 +6,7 @@ import { LanguageItem } from '../modules/module.langsData';
export interface MessageHandler {
name: string
auth: (data: AuthData) => Promise<AuthResponse>;
version: () => Promise<string>;
checkToken: () => Promise<CheckTokenResponse>;
search: (data: SearchData) => Promise<SearchResponse>,
availableDubCodes: () => Promise<string[]>,

1
@types/ws.d.ts vendored
View file

@ -18,6 +18,7 @@ export type UnknownWSMessage = {
export type MessageTypes = {
'auth': [AuthData, AuthResponse],
'version': [undefined, string],
'checkToken': [undefined, CheckTokenResponse],
'search': [SearchData, SearchResponse],
'default': [string, unknown],

View file

@ -7,8 +7,18 @@ import { StoreState } from '../../provider/Store'
const MenuBar: React.FC = () => {
const [ openMenu, setMenuOpen ] = React.useState<'settings'|'help'|undefined>();
const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
const [store] = useStore();
const [store, dispatch] = useStore();
const messageChannel = React.useContext(messageChannelContext);
const getVersion = async() => {
dispatch({
type: 'version',
payload: await messageChannel?.version()
});
}
getVersion();
const transformService = (service: StoreState['service']) => {
switch(service) {
case 'crunchy':
@ -92,6 +102,11 @@ const MenuBar: React.FC = () => {
}}>
Discord
</MenuItem>
<MenuItem onClick={() => {
handleClose();
}}>
Version: {store.version}
</MenuItem>
</Menu>
<Typography variant="h5" color="text.primary" component="div" align="center" sx={{flexGrow: 1}}>
{transformService(store.service)}

View file

@ -214,6 +214,7 @@ const MessageChannelProvider: FCWithChildren = ({ children }) => {
const messageHandler: FrontEndMessages = {
name: "default",
auth: async (data) => (await messageAndResponse(socket, { name: 'auth', data })).data,
version: async () => (await messageAndResponse(socket, { name: 'version', data: undefined })).data,
checkToken: async () => (await messageAndResponse(socket, { name: 'checkToken', data: undefined })).data,
search: async (data) => (await messageAndResponse(socket, { name: 'search', data })).data,
handleDefault: async (data) => (await messageAndResponse(socket, { name: 'default', data })).data,

View file

@ -20,6 +20,7 @@ export type StoreState = {
episodeListing: Episode[];
downloadOptions: DownloadOptions,
service: 'crunchy'|'funi'|'hidive'|undefined,
version: string,
}
export type StoreAction<T extends (keyof StoreState)> = {
@ -51,6 +52,7 @@ const initialState: StoreState = {
},
service: undefined,
episodeListing: [],
version: '',
};
const Store: FCWithChildren = ({children}) => {

View file

@ -7,6 +7,7 @@ import CrunchyHandler from './services/crunchyroll';
import FunimationHandler from './services/funimation';
import HidiveHandler from './services/hidive';
import WebSocketHandler from './websocket';
import packageJson from '../../package.json';
export default class ServiceHandler {
@ -51,6 +52,9 @@ export default class ServiceHandler {
return respond({ isOk: false, reason: new Error('No service selected') });
respond(await this.service.auth(data));
});
this.ws.events.on('version', async (_, respond) => {
respond(packageJson.version);
});
this.ws.events.on('type', async (_, respond) => respond(this.service === undefined ? undefined : this.service.name as 'hidive'|'crunchy'|'funi'));
this.ws.events.on('checkToken', async (_, respond) => {
if (this.service === undefined)

View file

@ -6,6 +6,7 @@ import { cfg } from '..';
import path from 'path';
import { console } from '../../../modules/log';
import { getState, setState } from '../../../modules/module.cfg-loader';
import packageJson from '../../../package.json';
export default class Base {
private state: GuiState;
@ -19,6 +20,12 @@ export default class Base {
private queue: QueueItem[] = [];
private workOnQueue = false;
version(): Promise<string> {
return new Promise(() => {
return packageJson.version;
});
}
initState() {
if (this.state.services[this.name]) {
this.queue = this.state.services[this.name].queue;

View file

@ -1,7 +1,7 @@
{
"name": "multi-downloader-nx",
"short_name": "aniDL",
"version": "4.3.0b5",
"version": "4.3.0b6",
"description": "Downloader for Crunchyroll, Funimation, or Hidive via CLI or GUI",
"keywords": [
"download",