Skip to content

Commit 0fba24b

Browse files
committed
Fix "Waiting for PS3" loop
1 parent 7b38c68 commit 0fba24b

5 files changed

Lines changed: 26 additions & 26 deletions

File tree

src/main/kotlin/net/openps3/drp3/presence/ActivityBuilder.kt

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,34 +28,31 @@ class ActivityBuilder(val instance: DRP3Instance) {
2828
instance.lastActivity = activityDetails
2929
instance.lastTitleID = webmanUtils.titleID
3030

31+
val titleData = mapOf(
32+
Constants.PLAYSTATION_STORE_ID to Triple("Looking at PlayStation® Store", Constants.PS_STORE_LOGO_KEY, "PlayStation® Store"),
33+
Constants.PSTVPLUS_ID to Triple("Watching PlayStation®TV Plus", Constants.PSTVPLUS_LOGO_KEY, "PlayStation®TV Plus"),
34+
Constants.YOUTUBE_ID to Triple("Watching YouTube", Constants.YOUTUBE_LOGO_KEY, "YouTube")
35+
)
36+
3137
Activity().use { activity ->
32-
if (webmanUtils.titleID == Constants.PLAYSTATION_STORE_ID) {
33-
activity.details = "Looking at PlayStation® Store"
34-
activity.state = if (instance.config.showTemp) webmanUtils.thermalData else webmanUtils.titleID
35-
activity.timestamps().start = Instant.now()
36-
activity.assets().largeImage = Constants.PS_STORE_LOGO_KEY
37-
activity.assets().largeText = "PlayStation® Store"
38-
39-
core.activityManager().updateActivity(activity)
40-
return
41-
}
38+
val data = titleData[webmanUtils.titleID]
39+
val isSpecial = data != null
4240

43-
activity.details = activityDetails
41+
activity.details = data?.first ?: activityDetails
4442
activity.state = if (instance.config.showTemp) webmanUtils.thermalData else webmanUtils.titleID
4543
activity.timestamps().start = Instant.now()
4644

47-
if (instance.config.showCover) {
48-
activity.assets().largeImage = if (webmanUtils.gameName.isNullOrBlank()) {
49-
Constants.DEFAULT_IMAGE_KEY
50-
} else {
51-
webmanUtils.titleID?.let { getGameTDBImage(it) } ?: Constants.DEFAULT_IMAGE_KEY
52-
}
53-
54-
} else activity.assets().largeImage = Constants.DEFAULT_IMAGE_KEY
45+
activity.assets().largeImage = when {
46+
data != null -> data.second
47+
instance.config.showCover -> webmanUtils.titleID?.let { getGameTDBImage(it) } ?: Constants.DEFAULT_IMAGE_KEY
48+
else -> Constants.DEFAULT_IMAGE_KEY
49+
}
5550

56-
activity.assets().largeText = webmanUtils.titleID ?: "Unknown ID"
51+
activity.assets().largeText = data?.third ?: (webmanUtils.titleID ?: "Unknown ID")
5752

5853
core.activityManager().updateActivity(activity)
54+
55+
if (isSpecial) return
5956
}
6057
}
6158
}

src/main/kotlin/net/openps3/drp3/utils/common/Constants.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ object Constants {
55
const val TARGET_BLANK = "a[target=_blank]"
66
const val CPU_RSX_PAGE = "a[href=/cpursx.ps3?up]"
77
const val PLAYSTATION_STORE_ID = "NPIA00025"
8+
const val YOUTUBE_ID = "NPEB01229"
9+
const val PSTVPLUS_ID = "PS3TV2025"
810
const val DEFAULT_IMAGE_KEY = "default_image_key"
911
const val PS_STORE_LOGO_KEY = "psstore_logo"
12+
const val PSTVPLUS_LOGO_KEY = "pstvplus_logo"
13+
const val YOUTUBE_LOGO_KEY = "youtube_logo"
1014
}

src/main/kotlin/net/openps3/drp3/utils/ps3/PSActivityUtils.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,8 @@ class PSActivityUtils(private val dataLoader: PSDataLoader) {
77
dataLoader.isRetroGame = false
88
if (dataLoader.document?.selectFirst(Constants.TARGET_BLANK) != null) {
99
dataLoader.systemUtils.getPS3Details()
10-
}
11-
else if (dataLoader.document?.selectFirst(Constants.DIRECTORIES_REGEX) != null) {
12-
dataLoader.isRetroGame = true
1310
} else {
14-
dataLoader.name = "XMB™"
11+
dataLoader.name = null
1512
dataLoader.titleID = null
1613
}
1714
}

src/main/kotlin/net/openps3/drp3/utils/ps3/SystemUtils.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,23 @@ class SystemUtils(private val dataLoader: PSDataLoader) {
1010
fun getPS3Details() {
1111
val titleLink = dataLoader.document?.selectFirst(Constants.TARGET_BLANK)
1212
val nameElement = titleLink?.nextElementSibling()
13+
lateinit var gameName: String
1314

1415
if (titleLink == null || nameElement == null) {
1516
logger.info { "Game info not found." }
1617
return
1718
}
1819

1920
val titleText = titleLink.text()
20-
var gameName = nameElement.text().replace("\n", "")
21+
gameName = nameElement.text().replace("\n", "")
2122

2223
val versionPattern = Pattern.compile("(.+)[0-9]{2}\\.[0-9]{2}")
2324
val versionMatcher = versionPattern.matcher(gameName)
2425
if (versionMatcher.find()) {
2526
gameName = versionMatcher.group(1)
2627
}
2728

29+
logger.info { "Received $gameName from webMAN"}
2830
dataLoader.titleID = titleText
2931
dataLoader.name = gameName
3032
}

src/main/kotlin/net/openps3/drp3/utils/ps3/webman/WebmanUtils.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class WebmanUtils(ip: String) {
2424

2525
fun fetchDetails(): Boolean {
2626
if (!dataLoader.getHtml()) {
27-
logger.error { "Can't get PlayStation® 3 Home page, is WebmanMOD installed?" }
27+
logger.error { "Can't get PlayStation®3 Home page, is WebmanMOD installed?" }
2828
thermalData = null
2929
gameName = null
3030
titleID = null

0 commit comments

Comments
 (0)