1- fetch ( 'https://api.github.com/repositories/42366054' )
2- . then ( function ( response )
3- {
4- if ( ! response . ok )
5- {
6- throw new Error ( 'Failed to fetch github repo info' ) ;
1+ fetch ( 'https://api.github.com/repositories/42366054' )
2+ . then ( ( response ) => {
3+ if ( ! response . ok ) {
4+ throw new Error ( 'Failed to fetch github repo info' ) ;
75 }
86
97 return response . json ( ) ;
10- } )
11- . then ( function ( response )
12- {
13- const starsCount = document . getElementById ( 'js-stars-count' ) ;
14- const formatter = new Intl . NumberFormat ( 'en' , { notation : 'compact' } ) ;
15- starsCount . textContent = formatter . format ( response . stargazers_count ) ;
16- } ) ;
17-
18- fetch ( 'https://api.github.com/repositories/42366054/releases?per_page=5' , {
8+ } )
9+ . then ( ( response ) => {
10+ const starsCount = document . getElementById ( 'js-stars-count' ) ;
11+ const formatter = new Intl . NumberFormat ( 'en' , { notation : 'compact' } ) ;
12+ starsCount . textContent = formatter . format ( response . stargazers_count ) ;
13+ } ) ;
14+
15+ fetch ( 'https://api.github.com/repositories/42366054/releases?per_page=5' , {
1916 headers : {
2017 Accept : 'application/vnd.github.html+json' ,
2118 } ,
22- } )
23- . then ( function ( response )
24- {
25- if ( ! response . ok )
26- {
27- throw new Error ( 'Failed to fetch github releases' ) ;
19+ } )
20+ . then ( ( response ) => {
21+ if ( ! response . ok ) {
22+ throw new Error ( 'Failed to fetch github releases' ) ;
2823 }
2924
3025 return response . json ( ) ;
31- } )
32- . then ( function ( releases )
33- {
34- if ( ! releases || releases . length === 0 )
35- {
26+ } )
27+ . then ( ( releases ) => {
28+ if ( ! releases || releases . length === 0 ) {
3629 return ;
3730 }
3831
39- const latestRelease = releases [ 0 ] ;
32+ const latestRelease = releases [ 0 ] ;
4033
41- for ( const asset of latestRelease . assets )
42- {
43- if ( asset . name === 'Source2Viewer.exe' )
44- {
45- document . getElementById ( 'js-download' ) . href = asset . browser_download_url ;
34+ for ( const asset of latestRelease . assets ) {
35+ if ( asset . name === 'Source2Viewer.exe' ) {
36+ document . getElementById ( 'js-download' ) . href =
37+ asset . browser_download_url ;
4638
47- const version = document . querySelector ( '.download-version' ) ;
39+ const version = document . querySelector ( '.download-version' ) ;
4840
4941 let string = `View release notes for v${ latestRelease . tag_name } ` ;
5042
51- if ( window . innerWidth > 500 )
52- {
53- const date = new Date ( latestRelease . published_at ) ;
43+ if ( window . innerWidth > 500 ) {
44+ const date = new Date ( latestRelease . published_at ) ;
5445 string += `, released on ${ date . toLocaleDateString ( ) } ` ;
5546 }
5647
@@ -59,129 +50,117 @@ fetch( 'https://api.github.com/repositories/42366054/releases?per_page=5', {
5950 }
6051 }
6152
62- const releaseNotesContainer = document . getElementById ( 'release-notes' ) ;
53+ const releaseNotesContainer = document . getElementById ( 'release-notes' ) ;
6354
64- releases . forEach ( function ( release , index )
65- {
55+ releases . forEach ( ( release , index ) => {
6656 const isLatest = index === 0 ;
6757
68- const releaseSection = document . createElement ( 'div' ) ;
58+ const releaseSection = document . createElement ( 'div' ) ;
6959 releaseSection . className = 'release-notes-content' ;
7060
71- const releaseHeader = document . createElement ( 'a' ) ;
61+ const releaseHeader = document . createElement ( 'a' ) ;
7262 releaseHeader . className = 'release-version' ;
7363 releaseHeader . href = release . html_url ;
7464 releaseHeader . target = '_blank' ;
7565 releaseHeader . rel = 'noopener' ;
76- const releaseDate = new Date ( release . published_at ) ;
66+ const releaseDate = new Date ( release . published_at ) ;
7767 releaseHeader . textContent = `v${ release . tag_name } - ${ releaseDate . toLocaleDateString ( ) } ` ;
78- releaseSection . appendChild ( releaseHeader ) ;
68+ releaseSection . appendChild ( releaseHeader ) ;
7969
80- const releaseContent = document . createElement ( 'div' ) ;
70+ const releaseContent = document . createElement ( 'div' ) ;
8171 releaseContent . className = 'release-content' ;
8272 releaseContent . innerHTML = release . body_html ;
83- releaseSection . appendChild ( releaseContent ) ;
73+ releaseSection . appendChild ( releaseContent ) ;
8474
85- if ( isLatest )
86- {
87- const releaseAssetsContainer = document . createElement ( 'div' ) ;
75+ if ( isLatest ) {
76+ const releaseAssetsContainer = document . createElement ( 'div' ) ;
8877 releaseAssetsContainer . className = 'release-assets' ;
8978 releaseAssetsContainer . id = 'js-release-assets' ;
9079
91- for ( const asset of release . assets )
92- {
80+ for ( const asset of release . assets ) {
9381 let name = asset . name ;
9482
95- if ( name . endsWith ( '.zip' ) )
96- {
97- name = name . substring ( 0 , name . length - 4 ) . replace ( / - / g, ' ' ) ;
83+ if ( name . endsWith ( '.zip' ) ) {
84+ name = name . substring ( 0 , name . length - 4 ) . replace ( / - / g, ' ' ) ;
9885 }
9986
100- const assetLink = document . createElement ( 'a' ) ;
87+ const assetLink = document . createElement ( 'a' ) ;
10188 assetLink . href = asset . browser_download_url ;
10289 assetLink . className = 'asset-link' ;
10390 assetLink . download = '' ;
10491 assetLink . textContent = name ;
105- releaseAssetsContainer . appendChild ( assetLink ) ;
92+ releaseAssetsContainer . appendChild ( assetLink ) ;
10693 }
10794
108- const githubLink = document . createElement ( 'a' ) ;
95+ const githubLink = document . createElement ( 'a' ) ;
10996 githubLink . href = release . html_url ;
11097 githubLink . className = 'asset-link' ;
11198 githubLink . target = '_blank' ;
11299 githubLink . rel = 'noopener' ;
113100 githubLink . textContent = 'View release on GitHub' ;
114- releaseAssetsContainer . appendChild ( githubLink ) ;
101+ releaseAssetsContainer . appendChild ( githubLink ) ;
115102
116- releaseSection . appendChild ( releaseAssetsContainer ) ;
103+ releaseSection . appendChild ( releaseAssetsContainer ) ;
117104 }
118105
119- releaseNotesContainer . appendChild ( releaseSection ) ;
120- } ) ;
121- } ) ;
106+ releaseNotesContainer . appendChild ( releaseSection ) ;
107+ } ) ;
108+ } ) ;
122109
123- function LoadWorkshop ( )
124- {
125- fetch ( 'https://steamdb.info/api/Source2ViewerWorkshop/' )
126- . then ( function ( response )
127- {
128- if ( ! response . ok )
129- {
130- throw new Error ( 'Failed to fetch workshop items' ) ;
110+ function LoadWorkshop ( ) {
111+ fetch ( 'https://steamdb.info/api/Source2ViewerWorkshop/' )
112+ . then ( ( response ) => {
113+ if ( ! response . ok ) {
114+ throw new Error ( 'Failed to fetch workshop items' ) ;
131115 }
132116
133117 return response . json ( ) ;
134- } )
135- . then ( function ( response )
136- {
137- if ( ! response . success || ! response . data )
138- {
139- throw new Error ( 'Failed to fetch workshop items' ) ;
118+ } )
119+ . then ( ( response ) => {
120+ if ( ! response . success || ! response . data ) {
121+ throw new Error ( 'Failed to fetch workshop items' ) ;
140122 }
141123
142124 const dateFormatter = new Intl . DateTimeFormat ( undefined , {
143125 dateStyle : 'medium' ,
144126 } ) ;
145127
146- const dom = document . querySelectorAll ( '.workshop-item' ) ;
128+ const dom = document . querySelectorAll ( '.workshop-item' ) ;
147129
148- for ( let i = 0 ; i < response . data . length && i < dom . length ; i ++ )
149- {
150- const file = response . data [ i ] ;
151- const element = dom [ i ] ;
152- const date = new Date ( file . time_created * 1000 ) ;
130+ for ( let i = 0 ; i < response . data . length && i < dom . length ; i ++ ) {
131+ const file = response . data [ i ] ;
132+ const element = dom [ i ] ;
133+ const date = new Date ( file . time_created * 1000 ) ;
153134
154135 const params = new URLSearchParams ( ) ;
155- params . set ( 'id' , file . id ) ;
156- params . set ( 'utm_source' , 'Source 2 Viewer' ) ;
157- params . set ( 'searchtext' , 'valveresourceformat' ) ;
136+ params . set ( 'id' , file . id ) ;
137+ params . set ( 'utm_source' , 'Source 2 Viewer' ) ;
138+ params . set ( 'searchtext' , 'valveresourceformat' ) ;
158139
159140 element . href = `https://steamcommunity.com/sharedfiles/filedetails/?${ params } ` ;
160- element . querySelector ( '.workshop-image' ) . src = file . preview_url ;
161- element . querySelector ( '.workshop-title' ) . textContent = file . title ;
162- element . querySelector ( '.workshop-info' ) . textContent = `${ dateFormatter . format ( date ) } — ${ file . subscriptions . toLocaleString ( ) } subscribers` ;
141+ element . querySelector ( '.workshop-image' ) . src = file . preview_url ;
142+ element . querySelector ( '.workshop-title' ) . textContent = file . title ;
143+ element . querySelector ( '.workshop-info' ) . textContent =
144+ `${ dateFormatter . format ( date ) } — ${ file . subscriptions . toLocaleString ( ) } subscribers` ;
163145 }
164- } ) ;
146+ } ) ;
165147}
166148
167- if ( 'IntersectionObserver' in window )
168- {
169- const observer = new window . IntersectionObserver ( entries =>
170- {
171- entries . forEach ( entry =>
149+ if ( 'IntersectionObserver' in window ) {
150+ const observer = new window . IntersectionObserver (
151+ ( entries ) => {
152+ entries . forEach ( ( entry ) => {
153+ if ( entry . isIntersecting ) {
154+ observer . disconnect ( ) ;
155+ LoadWorkshop ( ) ;
156+ }
157+ } ) ;
158+ } ,
172159 {
173- if ( entry . isIntersecting )
174- {
175- observer . disconnect ( ) ;
176- LoadWorkshop ( ) ;
177- }
178- } ) ;
179- } , {
180- rootMargin : '200px 0px 0px 0px'
181- } ) ;
182- observer . observe ( document . querySelector ( '.workshop' ) ) ;
183- }
184- else
185- {
160+ rootMargin : '200px 0px 0px 0px' ,
161+ } ,
162+ ) ;
163+ observer . observe ( document . querySelector ( '.workshop' ) ) ;
164+ } else {
186165 LoadWorkshop ( ) ;
187166}
0 commit comments