Jump to content

[PSNP+ v8.3] Improved PSNP, game lists, and more...


HusKy

Recommended Posts

On 04/12/2022 at 5:08 PM, HusKy said:

Not sure where to post this so gonna throw this in here for those who use Stylus.

 

As if all your work on PSNP+ wasn't enough, now I have to thank you for your Stylus help too. I tried out this suggestion of yours and then ended up down a rabbit hole browsing this thread hunting down any other ideas and hints I could find. After a fair bit of trial and error trying to figure out how it works, I'm absolutely loving how clean the site is looking:.

 

Spoiler

 

I personally don't see the need to distinguish between platinum and 100% games, so they all get the same platinum blue shading.

XKlgmhq.jpg

 

I also realised just how much I dislike the awful green shading seen everywhere on the site, so I got rid of it.

l50xfBL.jpg

 

Here too.

yOjdCoo.jpg

 

Even the buttons earn their own platinum blue when you complete the game :)

yxLmSdP.jpg

 

 

Also, shoutout to @langdon for this post which really helped me get started on it:

If anyone is interested, here is my Stylus code. But yeah I literally learned about CSS this week so there was a lot of trial and error and hack jobs to get things working. It's not exactly pro-level.

 

Spoiler

@-moz-document domain("psnprofiles.com") {
/* Better PSNProfiles Theme */

/* Colours: */
:root {
    --bg-light: #f9f9f9; /* Background colour when not earned/completed/platinumed (default colour for tables) */
    --bg-plat: #e3ecff; /* Background colour when earned/platinumed [Lighter choice: #ebf1ff; Darker choice: #e3ecff] */
    --bg-comp: #e3ecff; /* Background colour when 100% completed (no platinum) */
    --text-normal: #4486c6; /* Colour of regular text */
    --text-dark: #074369; /* Colour of darker text (eg. timestamps) */
    --border-earned: #057fcc; /* Colour of border around earned trophy images */
    --shadow-earned: #bac5e3; /* Colour of border around earned trophies in guide roadmap and contents */
    --sprite-earned: #6076ac; /* Shade of earned platinum/100% rarity text (also used for buttons on earned trophy/completed game rows) */
    --sprite-unearned: #afbad5; /* Shade of unearned platinum/100% rarity text */
}

/* ########## MAIN PROFILE PAGE ########## */

/* Adjust profile background colours (taking care not to break series page colours). May be somewhat customisable but sometimes changing these colours might affect something else on another part of the site */

/* Set default background colour for rows in tables (removes striped pattern) (applies to most tables throughout the site) */
table.zebra tr {
    background: var(--bg-light) !important;
}

/* Games with DLC: Set colour for rows with platinum and 100% */
table.zebra tr:has(span.platinum.earned):has(span.completion.earned) td:not(.series) {
    background: var(--bg-plat) !important;
} 

/* Games with DLC: Set colour for rows with platinum but not 100% */
table.zebra tr:has(span.platinum.earned):has(span.completion):not(:has(span.completion.earned)) td:not(.series) {
    background: var(--bg-plat) !important;
}

/* Games without DLC: Set colour for rows with platinum (no DLC) */
table.zebra tr:has(span.platinum.earned):not(:has(span.completion)) td:not(.series) {
    background: var(--bg-plat) !important;
}

/* Games without platinum: Set colour for rows with 100% (no platinum) */
table.zebra tr:has(span.completion.earned) td:not(.series) {
    background: var(--bg-comp) !important;
}

/* Set colour for recent activity card (top of profile) */
ul.recent-trophies li div.box {
    background: var(--bg-plat) !important;
}

/* Set text in recent activity cards to match other text. Also sets colour for trophy time differences (eg. +11 minutes, 6 seconds) on game page. */
.small_info_green, .small-info-green {
    color: var(--text-normal) !important;
}

/* Completion checkmark and rarity text changed to blue check star (but not on series page where green check has a different meaning) */

/* Blue check star is larger than old green check, need to set bigger size for it to fit into first */
.completion-status img.icon-sprite.completion:not(.series.basic-completion .separator .icon-sprite.completion) {
    width: 20px;
    height: 20px;
}

/* Identifying the point on https://psnprofiles.com/lib/img/icons/icon-sprite.png where the blue check star is */
.icon-sprite.completion:not(.series.basic-completion .separator .icon-sprite.completion) {
    background-position: -80px -100px;
    width: 20px;
    height: 20px;
}

/* Change colour of unearned 100% rarity text (below check star) to match unearned platinum rarity text */
.completion-status span.completion {
    color: var(--sprite-unearned);
}

/* Change colour of earned 100% rarity text (below check star) to match earned platinum rarity text */
.completion-status span.completion.earned {
    color: var(--sprite-earned);
}

/* Set background colour for when my name appears in list on any page */
tr.me td {
    background-color:  var(--bg-plat);
}

/* Sets game rank colours to be consistent with blue theme and scale towards grey */
.game-rank.S {
    color: rgb(72, 128, 240);
}
.game-rank.A {
    color: rgb(94,136,240);
}
.game-rank.B {
    color: rgb(105,140,210);
}
.game-rank.C {
    color: rgb(116,144,200);
}
.game-rank.D {
    color: rgb(127,148,190);
}
.game-rank.E {
    color: rgb(138,152,180);
}
.game-rank.F {
    color: rgb(149,156,170);
}
.game-rank:not(.S) {
    opacity: 0.8;
}

/* ########## GAME PAGES ########## */

/* Background colour for earned trophies and summary cards (Overview, Base Game, DLC) */
tr.platinum td:not(.series), tr.completed td:not(.series) {
    background: var(--bg-plat) !important;
}

/* Border colour for earned trophies: picture refers to tophy image on game pages, img refers to trophy image on guide pages */
picture.trophy.earned, img.trophy.earned {
    border: 4px solid var(--border-earned) !important;
}

/* Timestamp colours for individual trophies (darker shade than normal blue text) */
.typo-top-date, .typo-bottom-date {
    color: var(--text-dark);
}

/* Change series info box colour to match other table headers. Also applies to series page itself. */
.series-info > div {
    background: #336291;
}

/* ########## TROPHY PAGES ########## */

/* Set background for trophy cards on trophy pages, guide pages, and gaming session pages */
tr:has(img.trophy.earned) {
    background: var(--bg-plat) !important;
}

/* Change colour of "Add to Cabinet" or any other button on an earned trophy to match blue theme */
tr:has(img.trophy.earned) a.button {
    background: var(--sprite-earned) !important;
}

/* ########## GUIDE PAGES ########## */

/* Roadmap: Background and border of trophies */
.roadmap-trophies .trophy.earned {
    background: var(--bg-plat);
    box-shadow: 0 0 0 1px var(--shadow-earned) inset;
}

/* Guide Contents: Background and border */
.tableofcontents li.earned {
    background: var(--bg-plat) !important;
    border-top: 1px solid var(--shadow-earned) !important;
    border-bottom: 1px solid var(--shadow-earned) !important;
}

/*  Guide Contents: Text (standard blue text instead of being coloured to match trophy type) */
.tableofcontents li.earned a.platinum, .tableofcontents li.earned a.gold, .tableofcontents li.earned a.silver, .tableofcontents li.earned a.bronze {
    color: var(--text-normal);
}

/* ########## TROPHY LOG ########## */

/* Sets rows in trophy log to platinum-blue */
/* Bit of a hack job to select trophy log rows (has earned date and game image) but not other similar rows across the site (eg. first/last trophy, 100% club lists, gaming session comments). Please let me find a way to select elements based on page title or something. */
div#content table.zebra:not(.list-table):not(#gamesTable):not(#search-results) tr:has(img.game):has(span.typo-top-date):has(span.typo-bottom-date) td { 
    background: var(--bg-plat) !important;
}

/* ########## TRANSPARENCY ########## */

/* Covers most cases: Profile (exl. trophy cabinet etc.), Game page, Guides (exl. game logo), 100% club etc., Series, Trophy Log, Game Lists, Gaming Sessions, Leaderboard, Game Catalogue/Search. Doesn't cover: Front page, exclusions listed above.

/* Game Card Images */
img.game, picture.game, picture.game > img {
    background: none;
}

/* Trophy Images and Avatars */
img.trophy, picture.trophy, picture.trophy > img {
    background: none;
}

/* Front Page Game Cards and Avatars - without breaking recent players and search results (which have tr.platinum or tr.completed), 100% club (which have a td.rank class in the row)), and leaderboards (which have .typo-top.total) */
div#content table.zebra tr:not(:has(.rank, .typo-top.total)):not(.platinum):not(.completed) td:has(img.game, img.trophy.sm) {
    background: none !important;
}

/* Other tables like "Rarest Trophies" and "Trophy Milestones" - without overriding previous colouring if tr.platinum or tr.completed or tr.me)  */
div#content table.zebra:not(.list-table):not(#gamesTable):not(#search-results) tr:not(.platinum, .completed, .me):not(:has(.rank)) > td:has(img.trophy, picture.trophy, picture.trophy, img.game, picture.game, picture.game) {
    background: none !important;
}

/* Remove grey box from game logo on guide page */
.game-image-holder {
    box-shadow: none;
    border: 2px solid #e3e3e6;
}

/* ########## MISCELLANEOUS ########## */

/* Change colour of various green buttons around the site (excluding PSNP+ "+" buttons on game rows) to match colour of other buttons on the site (this colour apparently being is a mix of rgb(0,0,0,0.3) on top of a #336291 background) */
.green.button:not(.button.psnpp-list-button) {
    background: rgb(36,69,102) !important; /* Colour choices: Lighter #336291, Darker rgb(36,69,102) */
}

/* Remove forced uppercase from game title pathing (eg. "mekktor > Sonic The Hedgehog") */
div.title-bar h3 {
    text-transform: none;
    font-size: 18px;
}

/* Remove forced uppercase from titles in blue boxes (eg. game title, Recent Forum Posts, Recent Players) */
div.title h3 {
    text-transform: none;
    font-size: 16px;
}

/* ########## PSNP+ FLOATING MENU ########## */

/* Set visibility of floating menu when not hovering over it (currently set to not visible) */
div.psnpp-floating-menu:not(:hover) {
    opacity: 0.00 !important;
}

/* Change background colour to match PSNP solid blue table headers on profile page */
div.psnpp-floating-menu  {
    background: #336291 !important;
    border: 1px solid #f4f9ff !important;
    top: 5px !important;
    left: 5px !important;
}

/* Change style of buttons to match those at top of games table on profile page (not sure how much of this is necessary, I mostly copy+pasted from existing button style) */
div.psnpp-floating-menu .button.grey {
    color: #ebeff3;
    font-weight: bold;
    padding: 6px 10px 8px 10px;
    font-size: 11px;
    background-color: rgba(0,0,0,0.4) !important;
    background-image: url(/lib/img/icons/glyphs.png?2);
    background-position: 4px -114px; /* Identifying the point on https://psnprofiles.com/lib/img/icons/glyphs.png?2 where the arrow symbol is, because arrows are cool */
    background-repeat: no-repeat;
    padding-left: 28px;
    text-transform: uppercase;
    font-family: 'DP', Arial, Verdana, sans-serif;
    border-radius: 0px;
    width: 100%;
    text-align: left;
}

/* Change text at top of floating menu ("PSNP+ Menu"), or remove it entirely */
div.psnpp-floating-menu > div:has(b) {
    color: #f4f9ff;
    font-size: 24px;
    text-align: center;
    padding-top: 10px;
    padding-bottom: 10px;
    display: none; /* To remove entirely */
}

/* Change text at bottom of floating menu (eg. next update text on profile), or remove it entirely */
div.psnpp-floating-menu > div > span:has(small) {
    color: #f4f9ff;
    line-height: 1rem;
    text-align: center;
    display: block !important;
    display: none !important; /* To remove entirely */
}
/* ########## OTHER PSNP+ CHANGES ########## */

/* Remove guide complexity from profile */
.psnpp-guide-info-profile {
    display: none;
}

/* Remove "List data has been refreshed" box from game page (hopefully without also removing other random things below the game card around the site) */
div.game-image-holder + div:not(:has(.form)):not(:has(table)) {
    display: none;
}

/* Change colour of PSNP+ "add/remove" buttons on a completed game to match platinum blue background */
 tr.platinum a.button.psnpp-list-button, tr.completed a.button.psnpp-list-button {
    background: var(--sprite-earned) !important;
}

/* Remove bolding of search results for games that are found on my profile */
a.title {
    font-weight: normal !important;
}

/* Remove "Collapse" interface from Series pages (Can temporarily disable this style to change this option) */
.box.series.legend.incomplete + .form.center {
    display: none;
}
}

(If anyone has suggestions for how this code could be improved, I'd love to hear them)

 

 

Edited by mekktor
Added Stylus code
  • Like 3
Link to comment
Share on other sites

14 minutes ago, Seamndel said:

What does one do if he downloaded the js. file before enabling the extension (Windows Chrome)?

 

Click the download link again after the extension is installed and it will automatically trigger installation process in your browser.

Link to comment
Share on other sites

I have a request, is it possible to hide (or remove entirely) the "Easy Games" and "Hard Games" tabs in the Games section of the site? The first one might have made sense back in the PS3 days, but nowadays has become a showcase of Shovelware and and I think this contradicts the site's policy of hiding such crap. The second tab shows games that are either unreleased or just impossible ones, so again, there's nothing hard in it, just games with problematic trophy lists.

 

JSRXyuN.png

Edited by shary96
  • Like 2
Link to comment
Share on other sites

On 25. 12. 2022 at 5:04 PM, shary96 said:

I have a request, is it possible to hide (or remove entirely) the "Easy Games" and "Hard Games" tabs in the Games section of the site?

 

I'm not sure I wanna add more CSS rules to PSNP+ but you can do this with Stylus:

 

@-moz-document url-prefix("https://psnprofiles.com/games") {
div.sidebar > div.title:nth-child(3),
div.sidebar > table.box:nth-child(4),
div.sidebar > div.title:nth-child(5),
div.sidebar > table.box:nth-child(6)
{
    display: none;
}
}

 

  • Like 2
Link to comment
Share on other sites

Hi thank you for the extension !

 

I want to have all my games from my profile in a custom order

Therefore I create a gamelist, do I have to add them one by one in the list or is there a way to add them automatically from my profile list ? (I through it can be done by the URL, but it's seems that the url must redirect to a Json format right ?)

Link to comment
Share on other sites

https://psnprofiles.com/guide/12881-tales-of-arise-trophy-guide#23-godly-angler

When you click on any of the fish/tr element (click handler seems to be on the tr), it doesn't just cross out the fish you want to mark, but adds opacity ant strikethrough to the entire ancestor tr element and all other sibling tr elements. You could probably do something like evt.stopPropagation() to fix it, but not sure if that doesn't introduce other problems.

edit: 82lCQWV.png

Edited by viech54
Link to comment
Share on other sites

On 29. 12. 2022 at 6:36 PM, poket-short said:

Hi thank you for the extension !

 

I want to have all my games from my profile in a custom order

Therefore I create a gamelist, do I have to add them one by one in the list or is there a way to add them automatically from my profile list ? (I through it can be done by the URL, but it's seems that the url must redirect to a Json format right ?)

 

Yes, you can only add them one by one or import previously exported list.

 

4 hours ago, viech54 said:

https://psnprofiles.com/guide/12881-tales-of-arise-trophy-guide#23-godly-angler

When you click on any of the fish/tr element (click handler seems to be on the tr), it doesn't just cross out the fish you want to mark, but adds opacity ant strikethrough to the entire ancestor tr element and all other sibling tr elements. You could probably do something like evt.stopPropagation() to fix it, but not sure if that doesn't introduce other problems.

edit: 82lCQWV.png

 

Yes, this is a table inside another table, hence it breaks.

Unfortunately, "stopPropagation()" caused some issues so I removed it. Might improve this functionality later if I come up with a more precise solution.

  • Like 1
Link to comment
Share on other sites

On 4. 1. 2023 at 1:20 AM, Rebourne07 said:

Might not be possible, but I'll check anyway. Is it possible to turn these game names on the Recent Forum Posts section into links to the respective game's game page?

 

I think I looked into this already a long time ago and AFAIK, there is no way to obtain that trophy list ID from the page itself. The script would have to make ton of extra HTTP requests which I don't see as an option. Would be nice though.

 

On 4. 1. 2023 at 3:33 AM, langdon said:

Getting to DLC guides is a slight pain sometimes. It seems like you know that the individual trophies have guides, but is your data set aware that the DLC pack has a guide?  Thinking something like this (with good color choices):

 

The reason why the script knows about "main game" guide is because it's featured directly on the page:

vHMjeDG.png

I might look into loading DLC guide info but no promises. It unfortunately requires a lot of HTTP requests as well as some really, really ugly matching logic based on the DLC name.

 

23 hours ago, Prometheous101 said:

@HusKy So, Psnprofiles leaderboards has an option to find a user that is on there, but when clicked it just opens their profile.

Would PSNP+ be able to find their position on the leaderboards and actually open that page.

 

You can just click that profile and then click their rank, right?

Displaying rank in the user search would require loading each profile in the background -- up to 20 requests per page.

https://psnprofiles.com/search/users?q=ratchet

 

16 hours ago, viech54 said:

@HusKy I deleted some games from a list manually and noticed that the trophies/points/games on the list don't update to reflect the changes. It updates once I reload the page, so the update itself works, just not when deleting a game. So I can create a list that looks like this:

 

 

Noted in my backlog. It's not a huge issue as far as I can tell, only cosmetic bug.

Edited by HusKy
  • Like 2
Link to comment
Share on other sites

40 minutes ago, HusKy said:

 

I think I looked into this already a long time ago and AFAIK, there is no way to obtain that trophy list ID from the page itself. The script would have to make ton of extra HTTP requests which I don't see as an option. Would be nice though.

 

 

The reason why the script knows about "main game" guide is because it's featured directly on the page:

vHMjeDG.png

I might look into loading DLC guide info but no promises. It unfortunately requires a lot of HTTP requests as well as some really, really ugly matching logic based on the DLC name.

 

 

You can just click that profile and then click their rank, right?

Displaying rank in the user search would require loading each profile in the background -- up to 20 requests per page.

https://psnprofiles.com/search/users?q=ratchet

 

 

Noted in my backlog. It's not a huge issue as far as I can tell, only cosmetic bug.

Profile shows only the general leaderboard. Checking their position on any specifc console leaderboards, in my case VR Leaderboards is not possible. 

Link to comment
Share on other sites

Just now, Prometheous101 said:

Profile shows only the general leaderboard. Checking their position on any specifc console leaderboards, in my case VR Leaderboards is not possible. 

 

Yeah, that's not possible as far as I can tell.

  • Like 1
Link to comment
Share on other sites

2 hours ago, HusKy said:

 

I might look into loading DLC guide info but no promises. It unfortunately requires a lot of HTTP requests as well as some really, really ugly matching logic based on the DLC name.

 

Ah, yeah, I figured it'd already be done if it was easy.  I didn't realize the button shows up on the DLC trophy if there are ANY guides and the loops to find an appropriate description.

 

You could do it similar to trophy guide metadata on the games list...

- Wait for the user to open the guide

- Store all the distinct trophy names for the guide in ['psnpp-guidelist'] as a string array

- Then when the trophy page renders, you'd have everything you need to do a "good enough" job.

 

I guess that's me being naive about what's in ['psnpp-guidelist'] though.  Trophy names are usually the same across stacks right? It would bloat localStorage more, but it's probably not a huge problem. You could even compress it if it was.

 

Happy to help as always. Maybe one day someone will let us develop real site features.. ?  How great would it be if each trophy/game had a uuid that glued stacks together?

Edited by langdon
Link to comment
Share on other sites

@HusKy Hello, I got two questions regarding two features of PSNP+, maybe you can provide an answer:

1. Guide --> Automatically hide earned trophies in guides
 

Spoiler

I try to explain as best as I can:
I played Ys VIII on PS4 two times. EU stack in 2020 and NA stack in 2022
The EU stack was 100% completed in 2020 and the NA stack was started in 2022.
When I opened the NA stack and opened the trophy guide via the trophy guide banner, PSNP+ automatically loaded the trophies from the completed EU stack and hid all trophies.
Even using "Load from link" and inserting the link to the NA stack page did not help, trophies remained hidden
Also using "Toggle earned trophies" only showed all trophies or hid all trophies.

The only workaround I found, was deactivating "Automatically hide earned trophies in guides", use "Load from link" to insert the link to the NA stack, clicking on "Load". Afterwards, PSNP+ was only hiding the trophies I got already from the NA stack.

My guess is, that what I encountered is to be expected?


2. Game List --> Sharing a game list with others
 

Spoiler

I want to share some game lists with others, but I can not expect everybody to use PSNP+ or other tools to look at the game list.

So what I am asking is, if it is possible to export a game list to a *.csv or something like this?
If not, then I am okay with just manual copy & pasting the game names to another file.


Thank you very much for looking at my questions and have a nice weekend. Please, keep up the good work with PSNP+. :) ?

  • Like 1
Link to comment
Share on other sites

21 hours ago, langdon said:

You could do it similar to trophy guide metadata on the games list...

- Wait for the user to open the guide

 

The thing is, I load guide info when you visit any trophy list -- I use the trophy guide banner at the top to determine if there is a trophy guide and use the URL to obtain guide info. This allows me to easily link trophy list with trophy guide even if the guide is hardlinked to different stack.

If you go to a DLC guide, you won't be able to identify *other* stacks that are not attached to that particular guide so I'm not sure this would work.

 

localStorage limitations are another big issue which I need to tackle at some point because some features already break in profiles with 1000s of games.

56 minutes ago, Geridian said:

@HusKy Hello, I got two questions regarding two features of PSNP+, maybe you can provide an answer:

1. Guide --> Automatically hide earned trophies in guides
 

  Reveal hidden contents

I try to explain as best as I can:
I played Ys VIII on PS4 two times. EU stack in 2020 and NA stack in 2022
The EU stack was 100% completed in 2020 and the NA stack was started in 2022.
When I opened the NA stack and opened the trophy guide via the trophy guide banner, PSNP+ automatically loaded the trophies from the completed EU stack and hid all trophies.
Even using "Load from link" and inserting the link to the NA stack page did not help, trophies remained hidden
Also using "Toggle earned trophies" only showed all trophies or hid all trophies.

The only workaround I found, was deactivating "Automatically hide earned trophies in guides", use "Load from link" to insert the link to the NA stack, clicking on "Load". Afterwards, PSNP+ was only hiding the trophies I got already from the NA stack.

My guess is, that what I encountered is to be expected?


2. Game List --> Sharing a game list with others
 

  Reveal hidden contents

I want to share some game lists with others, but I can not expect everybody to use PSNP+ or other tools to look at the game list.

So what I am asking is, if it is possible to export a game list to a *.csv or something like this?
If not, then I am okay with just manual copy & pasting the game names to another file.


Thank you very much for looking at my questions and have a nice weekend. Please, keep up the good work with PSNP+. :) 1f44d.png

 

1. Yes, this is sort of expected. You can however just click "Toggle earned trophies" and the trophies should reappear. Also, instead of loading the NA progress via link, the game should appear in dropdown like this? You should be able to see both stacks there.

 

eNBxafB.png

 

2. I'd like to add CSV export soon-ish. :)

  • Like 2
Link to comment
Share on other sites

2 hours ago, Geridian said:

I want to share some game lists with others, but I can not expect everybody to use PSNP+ or other tools to look at the game list.

This is really good for sharing lists, no matter how long.  It's not text, but it looks pretty for the person you're sharing with at least:

https://chrome.google.com/webstore/detail/take-webpage-screenshots/mcbpblocgmgfnpjjppndjkmgjaogfceg?hl=en

  • Like 1
Link to comment
Share on other sites

2 hours ago, HusKy said:

1. Yes, this is sort of expected. You can however just click "Toggle earned trophies" and the trophies should reappear.


Without the workaround I posted above, even after I used "Load form link" to provide the URL for the NA stack, "Toggle earned trophies" still showed or hid all trophies from the EU stack.

 

Quote

Also, instead of loading the NA progress via link, the game should appear in dropdown like this? You should be able to see both stacks there.

 

eNBxafB.png


Yeah, I thought the same that I should be able to find the NA stack in the dropdown menu, since I played it and the NA stack was listed in my PSNP account profile.
But, even after I provided the link to the NA stack many times via "Load from Link", it was never listed in the dropdown menu. Only the EU stack was listed.
Now, nearly two months after I finished the NA stack, the dropdown menu on the trophy guide page lists the EU and the NA stack.

If you are okay with it, when I start playing the PS5 version of this game and I encounter the same problem, I will reach out to you again. :wave:
 

Quote

2. I'd like to add CSV export soon-ish. :)


Nice. ?

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   1 member

×
×
  • Create New...