2022-10-21 19:17:06 -04:00
/ *
* Vencord , a modification for Discord ' s desktop app
* Copyright ( c ) 2022 Vendicated and contributors
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < https : //www.gnu.org/licenses/>.
* /
2022-09-30 20:27:28 -04:00
import { Devs } from "../utils/constants" ;
2022-10-19 15:28:01 -04:00
import definePlugin , { OptionType } from "../utils/types" ;
import { Settings } from "../Vencord" ;
2022-09-02 00:08:23 -04:00
export default definePlugin ( {
name : "Ify" ,
2022-10-19 15:28:01 -04:00
description : "Disables Spotify auto-pausing, allows activity to continue playing when idling and bypasses premium checks, allowing you to listen along with others." ,
authors : [
Devs . Cyn ,
2022-10-20 01:48:46 -04:00
Devs . Nuckyz
2022-10-19 15:28:01 -04:00
] ,
2022-10-04 16:26:56 -04:00
patches : [ {
2022-10-19 15:28:01 -04:00
find : 'dispatch({type:"SPOTIFY_PROFILE_UPDATE"' ,
2022-10-04 16:26:56 -04:00
replacement : [ {
2022-10-19 15:28:01 -04:00
match : /(function\((.{1,2})\){)(.{1,6}dispatch\({type:"SPOTIFY_PROFILE_UPDATE")/ ,
replace : ( _ , functionStart , data , functionBody ) = > ` ${ functionStart } ${ data } .body.product="premium"; ${ functionBody } `
} ] ,
} , {
find : '.displayName="SpotifyStore"' ,
predicate : ( ) = > Settings . plugins . Ify . noSpotifyAutoPause ,
replacement : {
2022-10-04 16:26:56 -04:00
match : /function (.{1,2})\(\).{0,200}SPOTIFY_AUTO_PAUSED\);.{0,}}}}/ ,
replace : "function $1(){}"
2022-10-19 15:28:01 -04:00
}
} , {
find : '.displayName="SpotifyStore"' ,
predicate : ( ) = > Settings . plugins . Ify . keepSpotifyActivityOnIdle ,
replacement : {
match : /(shouldShowActivity=function\(\){.{1,50})&&!.{1,6}\.isIdle\(\)(.{0,}?})/ ,
replace : ( _ , functionDeclarationAndExpression , restOfFunction ) = > ` ${ functionDeclarationAndExpression } ${ restOfFunction } `
}
} ] ,
options : {
noSpotifyAutoPause : {
description : "Disable Spotify auto-pause" ,
type : OptionType . BOOLEAN ,
default : true ,
restartNeeded : true ,
} ,
keepSpotifyActivityOnIdle : {
description : "Keep Spotify activity playing when idling" ,
type : OptionType . BOOLEAN ,
default : false ,
restartNeeded : true ,
}
}
2022-09-02 00:08:23 -04:00
} ) ;