Skip to content

Commit

Permalink
Merge branch 'refactor-badgesprogress' of github.com:candela97/Augmen…
Browse files Browse the repository at this point in the history
…tedSteam into candela97-refactor-badgesprogress
  • Loading branch information
tfedor committed Apr 10, 2024
2 parents a46b882 + 9729e7b commit cd7ce49
Show file tree
Hide file tree
Showing 7 changed files with 154 additions and 137 deletions.
25 changes: 0 additions & 25 deletions src/css/augmentedsteam.css
Original file line number Diff line number Diff line change
Expand Up @@ -1947,31 +1947,6 @@ video.highlight_movie:hover + .html5_video_overlay {
float: left;
}

/***************************************
* App pages
* FBadgeProgress
**************************************/
.es_badges_progress_block .es_cards_numbers {
padding-top: 10px;
padding-bottom: 10px;
margin-left: 44px;
color: #67c1f5;
clear: both;
}
.es_badges_progress_block .es_cards_owned {
padding-top: 8px;
}
.es_progress_block {
overflow: hidden;
}
.es_progress_block .badge_info_description {
width: 275px;
}
.es_progress_block .badge_empty_circle {
margin: 0px 46px 14px 8px;
border-radius: 46px;
}

/***************************************
* App pages
* FDLCCheckboxes
Expand Down
4 changes: 2 additions & 2 deletions src/js/Background/Modules/SteamCommunityApi.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ class SteamCommunityApi extends Api {
* static params = { 'credentials': 'include', };
*/

static cards(appid, border) {
return SteamCommunityApi.getPage(`/my/gamecards/${appid}`, border ? {"border": 1} : {}, true);
static cards(steamid, appid) {
return SteamCommunityApi.getEndpoint(`/profiles/${steamid}/ajaxgetbadgeinfo/${appid}`);
}

static async getInventory(contextId) {
Expand Down
5 changes: 1 addition & 4 deletions src/js/Content/Features/Store/App/CApp.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import FRegionalPricing from "../Common/FRegionalPricing";
import {UserNotes} from "../Common/UserNotes";
import {FAchievementBar} from "./FAchievementBar.svelte";
import FAStatsLink from "./FAStatsLink";
import FBadgeProgress from "./FBadgeProgress";
import {FBadgeProgress} from "./FBadgeProgress.svelte";
import FDemoAbovePurchase from "./FDemoAbovePurchase";
import FDLCCheckboxes from "./FDLCCheckboxes";
import FDLCInfo from "./FDLCInfo";
Expand Down Expand Up @@ -112,9 +112,6 @@ export class CApp extends CStoreBase {

this.metalink = document.querySelector("#game_area_metalink a")?.getAttribute("href") ?? null;

// TODO this check is unreliable; some apps and dlcs have card category yet no card, and vice versa
this.hasCards = document.querySelector('#category_block img[src$="/ico_cards.png"]') !== null;

// #achievement_block is also used for point shop items
this.hasAchievements = document.querySelector(".communitylink_achievement_images") !== null;

Expand Down
105 changes: 0 additions & 105 deletions src/js/Content/Features/Store/App/FBadgeProgress.js

This file was deleted.

149 changes: 149 additions & 0 deletions src/js/Content/Features/Store/App/FBadgeProgress.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
<script lang="ts" context="module">
// @ts-ignore
import self_ from "./FBadgeProgress.svelte";
import {SyncedStorage} from "../../../../modulesCore";
import {Background, Feature, User} from "../../../modulesContent";
import type {CApp} from "./CApp";
export class FBadgeProgress extends Feature<CApp> {
override checkPrerequisites(): boolean {
return !this.context.isDlcLike
&& User.isSignedIn
&& SyncedStorage.get("show_badge_progress");
}
override async apply(): Promise<void> {
let data;
try {
data = await Background.action("cards", User.steamId, this.context.communityAppid);
} catch (err) {
throw new Error("Failed to fetch badges", {"cause": err});
}
data = data.badgedata;
// No badge data if game doesn't have cards or not logged in
if (!data) {
throw new Error("Failed to find badges data");
}
let target = document.querySelector(".rightcol.game_meta_data");
if (!target) {
throw new Error("Node not found");
}
(new self_({
target,
anchor: target.querySelector("#category_block")?.nextElementSibling ?? null,
props: {data}
}));
}
}
</script>

<script lang="ts">
import {Localization} from "../../../../modulesCore";
export let data: {
appid: number;
border: 0|1;
series: number;
level: number;
maxlevel: number;
name: string; // empty if no badge level
xp: number;
nextlevelname: string;
nextlevelxp: number;
iconurl: string;
bMaxed: null|boolean; // not sure
rgCards: {
name: string;
title: string;
imgurl: string;
arturl: string;
owned: 0|1;
markethash: string;
}[];
};
let cardOwned = data.rgCards.filter(c => c.owned === 1).length;
let cardTotal = data.rgCards.length;
</script>


<div class="block responsive_apppage_details_right heading">{Localization.str.badge_progress}</div>
<div class="block responsive_apppage_details_right">
<div class="block_content_inner es_badges_progress_block">
{#if data.level === 0}
<div class="badge_empty_circle"></div>
<div class="badge_empty_right">
<div class="badge_empty_name">{data.nextlevelname}</div>
<div class="badge_empty_name">{Localization.str.badge_not_unlocked}</div>
</div>
{:else}
<div class="badge_info_image">
<img src="{data.iconurl}" class="badge_icon" alt="Badge">
</div>
<div class="badge_info_description">
<div class="badge_info_title">{data.name}</div>
<div>{Localization.str.badge_level.replace("__level__", data.level)}</div>
</div>
{/if}
<div class="es_cards_numbers">
<div class="es_cards_owned">{Localization.str.cards_owned.replace("__owned__", cardOwned).replace("__possible__", cardTotal)}</div>
</div>
<div class="game_area_details_specs">
<div class="icon"><img src="//store.steampowered.com/public/images/v6/ico/ico_cards.png" class="category_icon" alt="Cards icon"></div>
<a href="//steamcommunity.com/my/gamecards/{data.appid}/" class="name">{data.bMaxed ? Localization.str.view_badge : Localization.str.view_badge_progress}</a>
</div>
</div>
</div>


<style>
.es_badges_progress_block {
overflow: hidden;
}
.badge_info_image {
float: left;
margin-right: 24px;
width: 80px;
height: 80px;
}
img.badge_icon {
width: 80px;
height: 80px;
}
.badge_info_description {
margin-top: 18px;
}
.badge_info_title {
color: #ffffff;
}
.badge_empty_circle {
margin: 0px 46px 14px 8px;
border-radius: 46px;
width: 46px;
height: 46px;
border: 2px dashed #656565;
float: left;
}
.badge_empty_right {
margin-top: 8px;
}
.badge_empty_name {
color: #5c5c5c;
}
.es_cards_numbers {
padding-top: 10px;
padding-bottom: 10px;
margin-left: 44px;
color: #67c1f5;
clear: both;
}
.es_cards_owned {
padding-top: 8px;
}
</style>
2 changes: 1 addition & 1 deletion src/js/Content/Features/Store/Common/FExtraLinks.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ export default class FExtraLinks extends Feature {
"iconClass": "cardexchange_btn",
"link": `https://www.steamcardexchange.net/index.php?gamepage-appid-${this.context.communityAppid}/`,
"text": Localization.str.view_on_website.replace("__website__", "Steam Card Exchange"),
"enabled": isAppPage && this.context.hasCards && SyncedStorage.get("showsteamcardexchange"),
"enabled": isAppPage && SyncedStorage.get("showsteamcardexchange"),
},
{
"iconClass": "protondb_btn",
Expand Down
1 change: 1 addition & 0 deletions src/localization/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
"total_size": "Total Size",
"dlc_details": "Downloadable Content Details",
"badge_not_unlocked": "Not unlocked",
"badge_level": "Level __level__",
"each": "Each",
"view_in_market": "View in Community Market",
"remove": "Remove",
Expand Down

0 comments on commit cd7ce49

Please sign in to comment.