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 ,
{ name : "Nuckyz" , id : 235834946571337729n }
] ,
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
} ) ;