From c9f7da2a71ff324f45ba2557bc30fd99ac9cfcd6 Mon Sep 17 00:00:00 2001 From: Ali Ghaedrahmat Date: Thu, 7 May 2026 21:17:05 +0330 Subject: [PATCH] HW5 --- .../.github/workflows/gradle.yml | 44 - .../.gradle/7.4/checksums/checksums.lock | Bin 17 -> 0 bytes .../.gradle/7.4/checksums/sha1-checksums.bin | Bin 19037 -> 0 bytes .../dependencies-accessors.lock | Bin 17 -> 0 bytes .../7.4/dependencies-accessors/gc.properties | 0 .../7.4/executionHistory/executionHistory.bin | Bin 45675 -> 0 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 0 bytes .../.gradle/7.4/fileChanges/last-build.bin | Bin 1 -> 0 bytes .../.gradle/7.4/fileHashes/fileHashes.bin | Bin 20497 -> 0 bytes .../.gradle/7.4/fileHashes/fileHashes.lock | Bin 17 -> 0 bytes .../7.4/fileHashes/resourceHashesCache.bin | Bin 19585 -> 0 bytes .../.gradle/7.4/gc.properties | 0 .../buildOutputCleanup.lock | Bin 17 -> 0 bytes .../buildOutputCleanup/cache.properties | 2 - .../buildOutputCleanup/outputFiles.bin | Bin 19649 -> 0 bytes .../.gradle/file-system.probe | Bin 8 -> 0 bytes .../.gradle/vcs-1/gc.properties | 0 .../.idea/.name | 1 - .../.idea/compiler.xml | 6 - .../.idea/gradle.xml | 17 - .../.idea/jarRepositories.xml | 20 - .../.idea/misc.xml | 10 - .../.idea/vcs.xml | 6 - .../.idea/workspace.xml | 131 --- .../Help/SortedByName.txt | 100 --- .../Help/SortedByPrice | 100 --- .../Help/SortedByRating | 100 --- .../README.md | 140 --- .../build.gradle | 20 - .../tests/test/classes/ParserTest.html | 106 --- .../reports/tests/test/css/base-style.css | 179 ---- .../build/reports/tests/test/css/style.css | 84 -- .../build/reports/tests/test/index.html | 133 --- .../build/reports/tests/test/js/report.js | 194 ----- .../tests/test/packages/default-package.html | 103 --- .../test-results/test/TEST-ParserTest.xml | 9 - .../build/test-results/test/binary/output.bin | 0 .../test-results/test/binary/output.bin.idx | Bin 1 -> 0 bytes .../test-results/test/binary/results.bin | Bin 184 -> 0 bytes .../compileJava/previous-compilation-data.bin | Bin 2217 -> 0 bytes .../previous-compilation-data.bin | Bin 1160 -> 0 bytes .../gradle/wrapper/gradle-wrapper.jar | Bin 43462 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 - .../gradlew | 234 ----- .../gradlew.bat | 89 -- .../settings.gradle | 2 - .../src/Resources/Video_Games.html | 805 ------------------ .../src/main/java/Game.java | 40 - .../src/main/java/Parser.java | 48 -- .../src/test/java/ParserTest.java | 76 -- 50 files changed, 2804 deletions(-) delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.github/workflows/gradle.yml delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/checksums/checksums.lock delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/checksums/sha1-checksums.bin delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/dependencies-accessors/gc.properties delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/executionHistory/executionHistory.bin delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/executionHistory/executionHistory.lock delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/fileChanges/last-build.bin delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/fileHashes/fileHashes.bin delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/fileHashes/fileHashes.lock delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/fileHashes/resourceHashesCache.bin delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/gc.properties delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/buildOutputCleanup/buildOutputCleanup.lock delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/buildOutputCleanup/cache.properties delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/buildOutputCleanup/outputFiles.bin delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/file-system.probe delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/vcs-1/gc.properties delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/.name delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/compiler.xml delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/gradle.xml delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/jarRepositories.xml delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/misc.xml delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/vcs.xml delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/workspace.xml delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByName.txt delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByPrice delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByRating delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/README.md delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build.gradle delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/classes/ParserTest.html delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/css/base-style.css delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/css/style.css delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/index.html delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/js/report.js delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/packages/default-package.html delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/TEST-ParserTest.xml delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/binary/output.bin delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/binary/output.bin.idx delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/binary/results.bin delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/tmp/compileJava/previous-compilation-data.bin delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/build/tmp/compileTestJava/previous-compilation-data.bin delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/gradle/wrapper/gradle-wrapper.jar delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/gradle/wrapper/gradle-wrapper.properties delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/gradlew delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/gradlew.bat delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/settings.gradle delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/src/Resources/Video_Games.html delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/src/main/java/Game.java delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/src/main/java/Parser.java delete mode 100644 Last-Year/Fourth-Assignment-Steam-Scraper-main/src/test/java/ParserTest.java diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.github/workflows/gradle.yml b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.github/workflows/gradle.yml deleted file mode 100644 index 74bf27b..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.github/workflows/gradle.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Java CI with Gradle - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - -jobs: - build: - runs-on: ubuntu-latest - permissions: - contents: read - - steps: - - uses: actions/checkout@v4 - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - name: Setup Gradle - uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 - - - name: Make Gradle Wrapper executable - run: chmod +x ./gradlew - - - name: Build with Gradle Wrapper - run: ./gradlew build - - dependency-submission: - runs-on: ubuntu-latest - permissions: - contents: write - - steps: - - uses: actions/checkout@v4 - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - name: Generate and submit dependency graph - uses: gradle/actions/dependency-submission@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/checksums/checksums.lock b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/checksums/checksums.lock deleted file mode 100644 index 0a7cbfb1f6dcd79ceaf2e22c77de3f81e710bb13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 TcmZQ(%NM&YcA!?D0RngcBOwCx diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/checksums/sha1-checksums.bin b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/checksums/sha1-checksums.bin deleted file mode 100644 index bd27f6a2d7e651460b2ce0e135d69b319d5afb40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19037 zcmeI({Yw*J00;29O{Q$IX&P-oN?T2cWo9p%hMG~Sy;w;jN46L>qhzb3VJ4(TI)$>Z z8W<{-qRX;i5RG2k?8RPw5KK&D22E+ggeW9PGV6BF9TN8!6yJl}^YFdxyL6iR8&d`XWh|6pFytP)-JfkgLP4c`PK9@>Q zd{G_QSHj)@jn9+L4Ss+9_N1BQ+mrcR9dwVz#$-)#>-6w>a{jI2P?DpITW2?)XOAD6 zstvp5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_0D*r? zU@h}=S25>`$eHjmqbAsBlRr}J?G`UJ4nM#8YE38e)co~Hc~g+xm&7r_jA?(j&K}Dt z(jMRXS*<_wo?f{*Yrr{sgS1?G*p~R(-%mqxq)rb z^@oKmtHImo_0`8ct+f9v-1cLApIJ7?waEJnqUn#qR(mje-R+JlkAK8aY_`kmG^$M& z(rWRu-z5tC61EJb7N>0}Q~uQu*D%x*hOb@M*k5)FHVtz}+&O!s)1%tx1tOPcd~U4w>;TS?JENrzp!xg6U`h=e9j5~=ErB5CIP)AxF@7R_ont4}* GO8Wy$LK;N? diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock deleted file mode 100644 index a9ae3eb705ea7be306390acb25368419a4d32e0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 ScmZSfaa|bb68_1U0SW*pCId$R diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/dependencies-accessors/gc.properties b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/dependencies-accessors/gc.properties deleted file mode 100644 index e69de29..0000000 diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/executionHistory/executionHistory.bin b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/7.4/executionHistory/executionHistory.bin deleted file mode 100644 index d10930b3d570035bbdf3e2338c22e4cac26e07c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45675 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 wht~!u&wK8^i( zi}tGBRa4rP$xNfVwb>{aHNVcae(Pph#Ei0)Vd&(Z=c~6o?)t+(NhA~UbNoSi@i2O^30oil0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd{ zi$Kuo8_~tyjEU`L)rNt9M0!hab>sES`G}{?%bTsRm)S+=_k*nKRW*&WxN5Ak4x@fS zdPY)9&thZU+Ya^OuqmsFX9;4w_pJ4nc;kWgZ+x-NDMMYdyJFY5lGbLdv;RT;>Z@f| zlPUMd@O27MFAJBS)^5og#5&hytq+^;Ej3Fzh|h0B{p*J$?(sLS2(iwZKwYk@>v?-Y zx(DkVH`MDZeI1T+Wc65Q`=j3UT~|??26GeM^-*tY5LIS3RMg_@yQAJCJEUhUnT*AI zGwQt)MV~R~j_FwEM55lONcHI-x6H)4cj8+AUBVZHr!w&QCe(-bJ@_G9PcI*z_eFj5 z7na3QcbjQ^ejIgWk`X`9RNRhr)^*gia=fxh_ZSISXV;=`Wl7bDWtnsE^%qd5OO`#_ zr=H;Fiz7tcmes3WV84t$Kgp=SGnSc`5K42y_xm~OAqP@BjO@$5!aB!dt;_g|GXdF& zSm&Cf9(mp~fO)7B{|$@#5$YeOdEb&#$@n_#KGZ)E7@Z5YFL{O^e+}vkyA99Iv~boEblAvA?to0~E?F5k|~wkd6m z3X}G%#_j)|7}IF@HaE4zi?w*|51&hMs%yQ~CUltdO3UEE6pxI#PK9Bz8F3<=+U+90 zBGkWG$eR%^jqr&RyqL#1&eq2J?quB`O{^|fU4gE)mkDv>W2#uHXV;imGxctC4sk+M z{6utXnlaq^NRUX|S*^M{Tx|_)%5)65aP$IYg`Q8{-)c>q(7AVN$Ei6}u2$@c@^Q1t zH;EHJY6eCcJS}^BA+SSIr+mK7M2Ys_3%A?0uAETxinsF27l~`kxrSN#eb8wA<06iq20P9#&l_se(dH~g(W-NofEngem-=PfQBTAn}EUHrm{FPWFph!c;5y7Zt? z-fN+XlYhEiI`%7ZBBVT+d!VaIv}cgz&}<#B&e`W1u!Ur&FGF~7=BCGOmmd(<*!awi z969UUB-K%DORI{>IOe?0*^jL@dOtMJdFQV3yAPGYH&l0%sHtzfm&&dzU5f#6QK$QU zuA5_&KXHxsW=q3w@Zvjy?Qz;>5nrORHn4HzMs#$?)hi8tGntx&)v4?UeEXY zdG@^T_SY5(1OXx&9D+NC-7C{|B#Dj;?J>Ff3!v z)u5M44o>KIpB!Ya(xSgJqdTswt}7Ad#5jGO*R--Pw2#A_0rZ+9+LFZCi!U*kkD;3u z3~oG`>e~w5gI+)3({m%;x(4PKp*ITln7ZZGt1utg);PLMy^4F;#9X-nFEp*6ZEU3YlX#TI@QuGdKN9-#WgNnIoGWuzaPjFjlex#(tHvLt!su5-*4$I-vbs<~z<@ULU86r=aastiHjcpG89-sx{Vsh+A8 z?T0x_(9ils-+KMQ*bMMc^uhW#-}&dyJk4AckA80Rg`mzi4{TwsEJq)@C#CjssPPo| za`f|oJ08imq!xmApkK@$xj9na@ELdl`Y!{g;`{SgKL_52K2}?B;pi1z1#@mU`t`k@ zea{E3u>T$$hw4%E@tnGT4{OXk=G?>R*2D2%O1uXaF;`ZjPiSnF!`I}qm@D2!_h^?M zYf5;cAAB{s=ZOz1#GV^9%vJl)Cy7=>k6dcbV$SVw`qDk&<7tCsus#D_R2-hU{h7G; zn9H9`vlyiSE+&2e3u}krTFliOIO5*hENn2-)pPdQo ze?-@4*Gq*e^K@_xy0&Sdp&`~+$ei;-PnEVVF>imWi@EY=^fYnLW%YfTRWRpWbX`lj zv{bm$7uMfG-_V}!Rrme-4>4EVi>}|+yY#WGvP|$=^v%u3{8K~?MKHevJ-gW`n=w$3 z4eLkI^LmFjP45bpF;_;RgKiR!G{9W!%{=0VZ=eQ!SJOzJ_E4%n>_~OcB{w`PK-!|F3 U@5A5ap74vgGRKu&{55~dANMa;G5`Po diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/file-system.probe b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.gradle/file-system.probe deleted file mode 100644 index e5284fe20de27a0795ea17c2e221b0139b1694cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8 PcmZQzVC? - - - - - \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/gradle.xml b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/gradle.xml deleted file mode 100644 index 611e7c8..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/gradle.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/jarRepositories.xml b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/jarRepositories.xml deleted file mode 100644 index fdc392f..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/jarRepositories.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/misc.xml b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/misc.xml deleted file mode 100644 index 08237f1..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/misc.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/vcs.xml b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/workspace.xml b/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/workspace.xml deleted file mode 100644 index f9d2f50..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/.idea/workspace.xml +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - { - "keyToString": { - "SHARE_PROJECT_CONFIGURATION_FILES": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "main", - "last_opened_file_path": "C:/Users/Asus/Desktop/placeHolder/Second-Assignment-CineScribe", - "nodejs_package_manager_path": "npm", - "settings.editor.selected.configurable": "preferences.pluginManager" - } -} - - - - - - - - - - - - - - - false - true - false - true - - - - - - - - - - - - - 1709128175583 - - - 1743341137706 - - - - - - - - - - - \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByName.txt b/Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByName.txt deleted file mode 100644 index 8a194de..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByName.txt +++ /dev/null @@ -1,100 +0,0 @@ -1. Game: Advance Wars, Rating: 4.7, Price: 89 -2. Game: Baldur's Gate II: Shadows of Amn, Rating: 4.9, Price: 91 -3. Game: Blast Corps, Rating: 3.7, Price: 83 -4. Game: Bloodborne, Rating: 4.8, Price: 88 -5. Game: CS student simulator, Rating: 1.0, Price: 85 -6. Game: Call of Duty: Advanced Warfare - Ascendance, Rating: 4.0, Price: 67 -7. Game: Call of Duty: Advanced Warfare - Reckoning, Rating: 3.5, Price: 57 -8. Game: Call of Duty: Advanced Warfare - Supremacy, Rating: 4.4, Price: 64 -9. Game: Call of Duty: Black Ops II, Rating: 3.8, Price: 50 -10. Game: Call of Duty: Black Ops III, Rating: 3.7, Price: 50 -11. Game: Call of Duty: Infinite Warfare - Sabotage, Rating: 4.3, Price: 18 -12. Game: Call of Duty: Modern Warfare Remastered, Rating: 3.9, Price: 71 -13. Game: Company of Heroes, Rating: 4.7, Price: 87 -14. Game: Counter-Strike: Source, Rating: 4.4, Price: 89 -15. Game: Dead Space 2, Rating: 4.4, Price: 86 -16. Game: Devil May Cry 5, Rating: 4.7, Price: 91 -17. Game: Diablo, Rating: 4.8, Price: 87 -18. Game: Dishonored 2, Rating: 4.3, Price: 80 -19. Game: Divinity: Original Sin Enhanced Edition, Rating: 4.6, Price: 80 -20. Game: Divinity: Original Sin II, Rating: 4.7, Price: 88 -21. Game: Doom 3, Rating: 4.1, Price: 81 -22. Game: Eternal Darkness: Sanity's Requiem, Rating: 4.6, Price: 87 -23. Game: Far Cry 3, Rating: 4.9, Price: 80 -24. Game: Far Cry 4, Rating: 4.8, Price: 91 -25. Game: Final Fantasy XII, Rating: 4.7, Price: 76 -26. Game: Flipnote Studio, Rating: 4.2, Price: 75 -27. Game: Forza Motorsport, Rating: 4.6, Price: 76 -28. Game: Forza Motorsport 3, Rating: 4.7, Price: 81 -29. Game: Geometry Wars: Retro Evolved 2, Rating: 3.8, Price: 83 -30. Game: God of War II, Rating: 4.9, Price: 90 -31. Game: God of War III, Rating: 4.9, Price: 88 -32. Game: Gran Turismo 2, Rating: 4.6, Price: 90 -33. Game: Gran Turismo 3: A-Spec, Rating: 4.5, Price: 84 -34. Game: Grand Theft Auto V, Rating: 3.6, Price: 36 -35. Game: Guacamelee! Gold Edition, Rating: 4.3, Price: 75 -36. Game: Half-Life 2: Episode Two, Rating: 4.2, Price: 92 -37. Game: Half-Life: Alyx, Rating: 4.8, Price: 92 -38. Game: Halo: Combat Evolved, Rating: 4.6, Price: 87 -39. Game: Hollow Knight, Rating: 4.3, Price: 90 -40. Game: Injustice 2: Legendary Edition, Rating: 4.0, Price: 77 -41. Game: JSRF: Jet Set Radio Future, Rating: 4.1, Price: 83 -42. Game: Mario Kart 8 DLC Pack 2, Rating: 3.9, Price: 89 -43. Game: Metal Gear Solid 2: Sons of Liberty, Rating: 4.7, Price: 88 -44. Game: Metal Gear Solid 3: Subsistence, Rating: 4.7, Price: 91 -45. Game: Metal Gear Solid 4: Guns of the Patriots, Rating: 4.5, Price: 88 -46. Game: Metroid Prime, Rating: 4.5, Price: 89 -47. Game: Minecraft: Xbox One Edition, Rating: 4.4, Price: 73 -48. Game: NFL 2K2, Rating: 3.6, Price: 71 -49. Game: NHL 2002, Rating: 4.0, Price: 83 -50. Game: Paper Mario, Rating: 4.5, Price: 90 -51. Game: Persona 5 Royal, Rating: 4.7, Price: 84 -52. Game: Pikmin 2, Rating: 4.0, Price: 90 -53. Game: Portal: Still Alive, Rating: 3.9, Price: 86 -54. Game: Project Gotham Racing 3, Rating: 4.2, Price: 79 -55. Game: Red Faction, Rating: 3.9, Price: 79 -56. Game: Resident Evil (2002), Rating: 4.2, Price: 92 -57. Game: Resident Evil 4: Wii Edition, Rating: 3.9, Price: 89 -58. Game: Resident Evil Code: Veronica, Rating: 4.6, Price: 85 -59. Game: Rome: Total War, Rating: 4.9, Price: 90 -60. Game: Shin Megami Tensei: Persona 4, Rating: 4.1, Price: 77 -61. Game: Sid Meier's Civilization III, Rating: 4.0, Price: 84 -62. Game: Sid Meier's Civilization IV, Rating: 4.3, Price: 82 -63. Game: Sid Meier's Civilization V, Rating: 4.3, Price: 80 -64. Game: Sid Meier's Gettysburg!, Rating: 4.4, Price: 74 -65. Game: Silent Hunter III, Rating: 3.9, Price: 78 -66. Game: Slay the Spire, Rating: 3.5, Price: 69 -67. Game: Super Mario 3D Land, Rating: 4.1, Price: 84 -68. Game: Super Mario 3D World, Rating: 4.7, Price: 89 -69. Game: Super Mario Galaxy, Rating: 4.6, Price: 91 -70. Game: Super Mario Odyssey, Rating: 4.9, Price: 89 -71. Game: Super Mario Sunshine, Rating: 4.5, Price: 84 -72. Game: Super Mario World: Super Mario Advance 2, Rating: 4.6, Price: 90 -73. Game: Super Smash Bros. Melee, Rating: 4.8, Price: 91 -74. Game: System Shock 2, Rating: 4.6, Price: 91 -75. Game: Team Fortress 2, Rating: 4.8, Price: 90 -76. Game: Tekken 3, Rating: 4.4, Price: 91 -77. Game: Tekken: Dark Resurrection, Rating: 3.8, Price: 86 -78. Game: The Chronicles of Riddick: Escape From Butcher Bay - Developer's Cut, Rating: 3.8, Price: 86 -79. Game: The House in Fata Morgana, Rating: 4.3, Price: 83 -80. Game: The Last of Us, Rating: 4.9, Price: 92 -81. Game: The Last of Us Part II, Rating: 4.9, Price: 57 -82. Game: The Legend of Zelda Collector's Edition, Rating: 4.7, Price: 89 -83. Game: The Legend of Zelda: A Link to the Past, Rating: 4.8, Price: 90 -84. Game: The Legend of Zelda: Majora's Mask, Rating: 4.6, Price: 91 -85. Game: The Legend of Zelda: The Wind Waker, Rating: 4.8, Price: 90 -86. Game: The Stanley Parable, Rating: 4.0, Price: 80 -87. Game: The World Ends with You, Rating: 4.5, Price: 87 -88. Game: Titanfall, Rating: 4.2, Price: 61 -89. Game: Tom Clancy's Rainbow Six Siege, Rating: 4.6, Price: 88 -90. Game: Tony Hawk's Pro Skater, Rating: 4.8, Price: 88 -91. Game: Uncharted 2: Among Thieves, Rating: 4.7, Price: 88 -92. Game: Uncharted 3: Drake's Deception, Rating: 4.7, Price: 84 -93. Game: Unreal Tournament 2004, Rating: 4.6, Price: 88 -94. Game: Vagrant Story, Rating: 4.5, Price: 90 -95. Game: Virtua Fighter 4, Rating: 4.4, Price: 81 -96. Game: WWF SmackDown! 2: Know Your Role, Rating: 4.2, Price: 84 -97. Game: Warcraft III: Reign of Chaos, Rating: 4.9, Price: 92 -98. Game: Watch Dogs 2, Rating: 4.1, Price: 81 -99. Game: Wipeout XL, Rating: 4.3, Price: 86 -100. Game: World of Warcraft, Rating: 4.8, Price: 74 \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByPrice b/Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByPrice deleted file mode 100644 index bb227a8..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByPrice +++ /dev/null @@ -1,100 +0,0 @@ -1. Game: The Last of Us, Rating: 4.9, Price: 92 -2. Game: Half-Life: Alyx, Rating: 4.8, Price: 92 -3. Game: Warcraft III: Reign of Chaos, Rating: 4.9, Price: 92 -4. Game: Half-Life 2: Episode Two, Rating: 4.2, Price: 92 -5. Game: Resident Evil (2002), Rating: 4.2, Price: 92 -6. Game: Far Cry 4, Rating: 4.8, Price: 91 -7. Game: Super Mario Galaxy, Rating: 4.6, Price: 91 -8. Game: Devil May Cry 5, Rating: 4.7, Price: 91 -9. Game: Tekken 3, Rating: 4.4, Price: 91 -10. Game: Baldur's Gate II: Shadows of Amn, Rating: 4.9, Price: 91 -11. Game: The Legend of Zelda: Majora's Mask, Rating: 4.6, Price: 91 -12. Game: Metal Gear Solid 3: Subsistence, Rating: 4.7, Price: 91 -13. Game: System Shock 2, Rating: 4.6, Price: 91 -14. Game: Super Smash Bros. Melee, Rating: 4.8, Price: 91 -15. Game: The Legend of Zelda: The Wind Waker, Rating: 4.8, Price: 90 -16. Game: The Legend of Zelda: A Link to the Past, Rating: 4.8, Price: 90 -17. Game: Gran Turismo 2, Rating: 4.6, Price: 90 -18. Game: God of War II, Rating: 4.9, Price: 90 -19. Game: Paper Mario, Rating: 4.5, Price: 90 -20. Game: Vagrant Story, Rating: 4.5, Price: 90 -21. Game: Team Fortress 2, Rating: 4.8, Price: 90 -22. Game: Super Mario World: Super Mario Advance 2, Rating: 4.6, Price: 90 -23. Game: Rome: Total War, Rating: 4.9, Price: 90 -24. Game: Hollow Knight, Rating: 4.3, Price: 90 -25. Game: Pikmin 2, Rating: 4.0, Price: 90 -26. Game: Metroid Prime, Rating: 4.5, Price: 89 -27. Game: Super Mario Odyssey, Rating: 4.9, Price: 89 -28. Game: The Legend of Zelda Collector's Edition, Rating: 4.7, Price: 89 -29. Game: Super Mario 3D World, Rating: 4.7, Price: 89 -30. Game: Advance Wars, Rating: 4.7, Price: 89 -31. Game: Mario Kart 8 DLC Pack 2, Rating: 3.9, Price: 89 -32. Game: Resident Evil 4: Wii Edition, Rating: 3.9, Price: 89 -33. Game: Counter-Strike: Source, Rating: 4.4, Price: 89 -34. Game: Uncharted 2: Among Thieves, Rating: 4.7, Price: 88 -35. Game: Metal Gear Solid 2: Sons of Liberty, Rating: 4.7, Price: 88 -36. Game: Metal Gear Solid 4: Guns of the Patriots, Rating: 4.5, Price: 88 -37. Game: Tom Clancy's Rainbow Six Siege, Rating: 4.6, Price: 88 -38. Game: Divinity: Original Sin II, Rating: 4.7, Price: 88 -39. Game: Unreal Tournament 2004, Rating: 4.6, Price: 88 -40. Game: God of War III, Rating: 4.9, Price: 88 -41. Game: Bloodborne, Rating: 4.8, Price: 88 -42. Game: Tony Hawk's Pro Skater, Rating: 4.8, Price: 88 -43. Game: Halo: Combat Evolved, Rating: 4.6, Price: 87 -44. Game: Diablo, Rating: 4.8, Price: 87 -45. Game: Company of Heroes, Rating: 4.7, Price: 87 -46. Game: Eternal Darkness: Sanity's Requiem, Rating: 4.6, Price: 87 -47. Game: The World Ends with You, Rating: 4.5, Price: 87 -48. Game: Wipeout XL, Rating: 4.3, Price: 86 -49. Game: Portal: Still Alive, Rating: 3.9, Price: 86 -50. Game: The Chronicles of Riddick: Escape From Butcher Bay - Developer's Cut, Rating: 3.8, Price: 86 -51. Game: Dead Space 2, Rating: 4.4, Price: 86 -52. Game: Tekken: Dark Resurrection, Rating: 3.8, Price: 86 -53. Game: Resident Evil Code: Veronica, Rating: 4.6, Price: 85 -54. Game: CS student simulator, Rating: 1.0, Price: 85 -55. Game: Gran Turismo 3: A-Spec, Rating: 4.5, Price: 84 -56. Game: Persona 5 Royal, Rating: 4.7, Price: 84 -57. Game: Uncharted 3: Drake's Deception, Rating: 4.7, Price: 84 -58. Game: Super Mario Sunshine, Rating: 4.5, Price: 84 -59. Game: Sid Meier's Civilization III, Rating: 4.0, Price: 84 -60. Game: WWF SmackDown! 2: Know Your Role, Rating: 4.2, Price: 84 -61. Game: Super Mario 3D Land, Rating: 4.1, Price: 84 -62. Game: The House in Fata Morgana, Rating: 4.3, Price: 83 -63. Game: NHL 2002, Rating: 4.0, Price: 83 -64. Game: Blast Corps, Rating: 3.7, Price: 83 -65. Game: Geometry Wars: Retro Evolved 2, Rating: 3.8, Price: 83 -66. Game: JSRF: Jet Set Radio Future, Rating: 4.1, Price: 83 -67. Game: Sid Meier's Civilization IV, Rating: 4.3, Price: 82 -68. Game: Virtua Fighter 4, Rating: 4.4, Price: 81 -69. Game: Forza Motorsport 3, Rating: 4.7, Price: 81 -70. Game: Watch Dogs 2, Rating: 4.1, Price: 81 -71. Game: Doom 3, Rating: 4.1, Price: 81 -72. Game: Far Cry 3, Rating: 4.9, Price: 80 -73. Game: Sid Meier's Civilization V, Rating: 4.3, Price: 80 -74. Game: Dishonored 2, Rating: 4.3, Price: 80 -75. Game: Divinity: Original Sin Enhanced Edition, Rating: 4.6, Price: 80 -76. Game: The Stanley Parable, Rating: 4.0, Price: 80 -77. Game: Project Gotham Racing 3, Rating: 4.2, Price: 79 -78. Game: Red Faction, Rating: 3.9, Price: 79 -79. Game: Silent Hunter III, Rating: 3.9, Price: 78 -80. Game: Shin Megami Tensei: Persona 4, Rating: 4.1, Price: 77 -81. Game: Injustice 2: Legendary Edition, Rating: 4.0, Price: 77 -82. Game: Forza Motorsport, Rating: 4.6, Price: 76 -83. Game: Final Fantasy XII, Rating: 4.7, Price: 76 -84. Game: Flipnote Studio, Rating: 4.2, Price: 75 -85. Game: Guacamelee! Gold Edition, Rating: 4.3, Price: 75 -86. Game: World of Warcraft, Rating: 4.8, Price: 74 -87. Game: Sid Meier's Gettysburg!, Rating: 4.4, Price: 74 -88. Game: Minecraft: Xbox One Edition, Rating: 4.4, Price: 73 -89. Game: NFL 2K2, Rating: 3.6, Price: 71 -90. Game: Call of Duty: Modern Warfare Remastered, Rating: 3.9, Price: 71 -91. Game: Slay the Spire, Rating: 3.5, Price: 69 -92. Game: Call of Duty: Advanced Warfare - Ascendance, Rating: 4.0, Price: 67 -93. Game: Call of Duty: Advanced Warfare - Supremacy, Rating: 4.4, Price: 64 -94. Game: Titanfall, Rating: 4.2, Price: 61 -95. Game: The Last of Us Part II, Rating: 4.9, Price: 57 -96. Game: Call of Duty: Advanced Warfare - Reckoning, Rating: 3.5, Price: 57 -97. Game: Call of Duty: Black Ops III, Rating: 3.7, Price: 50 -98. Game: Call of Duty: Black Ops II, Rating: 3.8, Price: 50 -99. Game: Grand Theft Auto V, Rating: 3.6, Price: 36 -100. Game: Call of Duty: Infinite Warfare - Sabotage, Rating: 4.3, Price: 18 \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByRating b/Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByRating deleted file mode 100644 index c09908f..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/Help/SortedByRating +++ /dev/null @@ -1,100 +0,0 @@ -1. Game: Super Mario Odyssey, Rating: 4.9, Price: 89 -2. Game: Baldur's Gate II: Shadows of Amn, Rating: 4.9, Price: 91 -3. Game: The Last of Us, Rating: 4.9, Price: 92 -4. Game: Far Cry 3, Rating: 4.9, Price: 80 -5. Game: The Last of Us Part II, Rating: 4.9, Price: 57 -6. Game: God of War II, Rating: 4.9, Price: 90 -7. Game: God of War III, Rating: 4.9, Price: 88 -8. Game: Warcraft III: Reign of Chaos, Rating: 4.9, Price: 92 -9. Game: Rome: Total War, Rating: 4.9, Price: 90 -10. Game: Far Cry 4, Rating: 4.8, Price: 91 -11. Game: The Legend of Zelda: The Wind Waker, Rating: 4.8, Price: 90 -12. Game: The Legend of Zelda: A Link to the Past, Rating: 4.8, Price: 90 -13. Game: Diablo, Rating: 4.8, Price: 87 -14. Game: Half-Life: Alyx, Rating: 4.8, Price: 92 -15. Game: World of Warcraft, Rating: 4.8, Price: 74 -16. Game: Bloodborne, Rating: 4.8, Price: 88 -17. Game: Team Fortress 2, Rating: 4.8, Price: 90 -18. Game: Super Smash Bros. Melee, Rating: 4.8, Price: 91 -19. Game: Tony Hawk's Pro Skater, Rating: 4.8, Price: 88 -20. Game: Devil May Cry 5, Rating: 4.7, Price: 91 -21. Game: Uncharted 2: Among Thieves, Rating: 4.7, Price: 88 -22. Game: Metal Gear Solid 2: Sons of Liberty, Rating: 4.7, Price: 88 -23. Game: The Legend of Zelda Collector's Edition, Rating: 4.7, Price: 89 -24. Game: Persona 5 Royal, Rating: 4.7, Price: 84 -25. Game: Metal Gear Solid 3: Subsistence, Rating: 4.7, Price: 91 -26. Game: Company of Heroes, Rating: 4.7, Price: 87 -27. Game: Divinity: Original Sin II, Rating: 4.7, Price: 88 -28. Game: Super Mario 3D World, Rating: 4.7, Price: 89 -29. Game: Uncharted 3: Drake's Deception, Rating: 4.7, Price: 84 -30. Game: Advance Wars, Rating: 4.7, Price: 89 -31. Game: Final Fantasy XII, Rating: 4.7, Price: 76 -32. Game: Forza Motorsport 3, Rating: 4.7, Price: 81 -33. Game: Super Mario Galaxy, Rating: 4.6, Price: 91 -34. Game: Halo: Combat Evolved, Rating: 4.6, Price: 87 -35. Game: The Legend of Zelda: Majora's Mask, Rating: 4.6, Price: 91 -36. Game: Resident Evil Code: Veronica, Rating: 4.6, Price: 85 -37. Game: Tom Clancy's Rainbow Six Siege, Rating: 4.6, Price: 88 -38. Game: Gran Turismo 2, Rating: 4.6, Price: 90 -39. Game: Unreal Tournament 2004, Rating: 4.6, Price: 88 -40. Game: Eternal Darkness: Sanity's Requiem, Rating: 4.6, Price: 87 -41. Game: Forza Motorsport, Rating: 4.6, Price: 76 -42. Game: System Shock 2, Rating: 4.6, Price: 91 -43. Game: Super Mario World: Super Mario Advance 2, Rating: 4.6, Price: 90 -44. Game: Divinity: Original Sin Enhanced Edition, Rating: 4.6, Price: 80 -45. Game: Metroid Prime, Rating: 4.5, Price: 89 -46. Game: Gran Turismo 3: A-Spec, Rating: 4.5, Price: 84 -47. Game: Metal Gear Solid 4: Guns of the Patriots, Rating: 4.5, Price: 88 -48. Game: Paper Mario, Rating: 4.5, Price: 90 -49. Game: Vagrant Story, Rating: 4.5, Price: 90 -50. Game: Super Mario Sunshine, Rating: 4.5, Price: 84 -51. Game: The World Ends with You, Rating: 4.5, Price: 87 -52. Game: Tekken 3, Rating: 4.4, Price: 91 -53. Game: Virtua Fighter 4, Rating: 4.4, Price: 81 -54. Game: Sid Meier's Gettysburg!, Rating: 4.4, Price: 74 -55. Game: Dead Space 2, Rating: 4.4, Price: 86 -56. Game: Minecraft: Xbox One Edition, Rating: 4.4, Price: 73 -57. Game: Call of Duty: Advanced Warfare - Supremacy, Rating: 4.4, Price: 64 -58. Game: Counter-Strike: Source, Rating: 4.4, Price: 89 -59. Game: The House in Fata Morgana, Rating: 4.3, Price: 83 -60. Game: Sid Meier's Civilization IV, Rating: 4.3, Price: 82 -61. Game: Wipeout XL, Rating: 4.3, Price: 86 -62. Game: Hollow Knight, Rating: 4.3, Price: 90 -63. Game: Sid Meier's Civilization V, Rating: 4.3, Price: 80 -64. Game: Dishonored 2, Rating: 4.3, Price: 80 -65. Game: Call of Duty: Infinite Warfare - Sabotage, Rating: 4.3, Price: 18 -66. Game: Guacamelee! Gold Edition, Rating: 4.3, Price: 75 -67. Game: Flipnote Studio, Rating: 4.2, Price: 75 -68. Game: Half-Life 2: Episode Two, Rating: 4.2, Price: 92 -69. Game: WWF SmackDown! 2: Know Your Role, Rating: 4.2, Price: 84 -70. Game: Project Gotham Racing 3, Rating: 4.2, Price: 79 -71. Game: Titanfall, Rating: 4.2, Price: 61 -72. Game: Resident Evil (2002), Rating: 4.2, Price: 92 -73. Game: Shin Megami Tensei: Persona 4, Rating: 4.1, Price: 77 -74. Game: Super Mario 3D Land, Rating: 4.1, Price: 84 -75. Game: JSRF: Jet Set Radio Future, Rating: 4.1, Price: 83 -76. Game: Watch Dogs 2, Rating: 4.1, Price: 81 -77. Game: Doom 3, Rating: 4.1, Price: 81 -78. Game: NHL 2002, Rating: 4.0, Price: 83 -79. Game: Sid Meier's Civilization III, Rating: 4.0, Price: 84 -80. Game: Pikmin 2, Rating: 4.0, Price: 90 -81. Game: Injustice 2: Legendary Edition, Rating: 4.0, Price: 77 -82. Game: Call of Duty: Advanced Warfare - Ascendance, Rating: 4.0, Price: 67 -83. Game: The Stanley Parable, Rating: 4.0, Price: 80 -84. Game: Portal: Still Alive, Rating: 3.9, Price: 86 -85. Game: Silent Hunter III, Rating: 3.9, Price: 78 -86. Game: Mario Kart 8 DLC Pack 2, Rating: 3.9, Price: 89 -87. Game: Red Faction, Rating: 3.9, Price: 79 -88. Game: Call of Duty: Modern Warfare Remastered, Rating: 3.9, Price: 71 -89. Game: Resident Evil 4: Wii Edition, Rating: 3.9, Price: 89 -90. Game: The Chronicles of Riddick: Escape From Butcher Bay - Developer's Cut, Rating: 3.8, Price: 86 -91. Game: Geometry Wars: Retro Evolved 2, Rating: 3.8, Price: 83 -92. Game: Call of Duty: Black Ops II, Rating: 3.8, Price: 50 -93. Game: Tekken: Dark Resurrection, Rating: 3.8, Price: 86 -94. Game: Blast Corps, Rating: 3.7, Price: 83 -95. Game: Call of Duty: Black Ops III, Rating: 3.7, Price: 50 -96. Game: NFL 2K2, Rating: 3.6, Price: 71 -97. Game: Grand Theft Auto V, Rating: 3.6, Price: 36 -98. Game: Call of Duty: Advanced Warfare - Reckoning, Rating: 3.5, Price: 57 -99. Game: Slay the Spire, Rating: 3.5, Price: 69 -100. Game: CS student simulator, Rating: 1.0, Price: 85 \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/README.md b/Last-Year/Fourth-Assignment-Steam-Scraper-main/README.md deleted file mode 100644 index bd0c74f..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/README.md +++ /dev/null @@ -1,140 +0,0 @@ -# Fourth Assignment: Steam Scraper 🎮 - -## Introduction - -This project delves into the practical application of HTML parsing techniques using Java and the JSoup library. The objective is to extract and manipulate data from a structured HTML document containing information about various video-games. Key tasks include parsing the document, creating Java objects to represent the data, sorting the information based on different criteria, and presenting the results effectively. - -## Why Learn Web Scraping? 📊 - -Mastering web scraping empowers individuals and businesses to glean valuable insights, automate tasks, and make informed decisions based on real-time data. - -- In e-commerce, web scraping aids in monitoring competitors' prices, tracking product availability, and gathering customer reviews. In finance, it facilitates trend analysis, investment decisions, and risk assessment. - -- Research, academia, journalism, and media professionals leverage web scraping for data collection, trend tracking, sentiment analysis, and investigative reporting. - -By mastering web scraping, professionals can extract data efficiently, outperform competitors, and drive data-informed success in diverse industries. - -## Prerequisites ✅ - -Before diving into this project, make sure you have the following tools and knowledge: - -### Tools Needed: -- **Java 17 or higher** : Download the latest version from [Oracle's Java website](https://www.oracle.com/java/technologies/downloads/). -- **Git** : Install Git, a powerful version control system, from [Git's official website](https://git-scm.com/downloads). -- **Gradle** : Utilize Gradle (recommended version 7.6 or newer) as the build tool. You can find installation instructions [here](https://gradle.org/install/). - -### Knowledge Required: -In addition to the tools mentioned above, familiarity with the following topics is crucial for successful project completion: -- **Jsoup** : Understanding how to access, parse, and manipulate HTML files using Jsoup. -- **HTML** : Knowledge of various HTML tags, their purposes, and how to identify and manipulate them using Jsoup. -- **CSS** : Understanding how to style HTML elements, work with CSS classes, and utilize selectors efficiently. - -By having a solid grasp of these tools and concepts, you'll be well-equipped to excel in this project. 🚀 - -## Objectives 🎯 - -The primary objectives of this assignment are: - -- Parsing an HTML file with video-game data. -- Extracting relevant information such as price, rating, and other game attributes. -- Implementing Java classes to represent games. -- Utilizing JSoup for HTML parsing. -- Applying sorting algorithms for organizing data by price, rating, and game name. -- Displaying the sorted game information effectively. - -## Tasks 📝 - -1. **Set Up the Project:** - - - Start by cloning the repository to your local machine. - - Open the project in an IDE such as IntelliJ. - -2. **Integrate JSoup Dependency:** - - - Include the JSoup dependency in your `build.gradle` file. - - ```gradle - dependencies { - - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1' - - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1' - - implementation 'org.jsoup:jsoup:1.14.3' - - } - ``` - - -3. **Define the Country Class:** - - - Create a `Game` class in Java to encapsulate country-specific data. - -5. **HTML Parsing using JSoup:** - - Utilize JSoup to parse the HTML file located in the Resources folder at this path: `Fourth-Assignment-Steam-Scraper\src\Resources` and extract relevant information such as: - - - `` = for game names - - `` = for game ratings - - `` = for game prices - - **Note: The span tags are nested within other tags and div closures.** - -6. **Implement Sorting Functionality:** - - - Develop sorting algorithms for various criteria like rating, price, and name. - -8. **Visualize Results:** - - - Clearly present the sorted game data. - -## Bonus Objectives (For Advanced Users) 🌟 - -To enhance your project further: - -- Expand data extraction to additional websites, such as [Oscar Winning Films](https://www.scrapethissite.com/pages/ajax-javascript/). -- Develop a user interface for interactive querying and sorting. -- Utilize SQL or NoSQL databases to store the scraped data. - -## Notes 📝 - -Here are some important points to keep in mind: - -- there is a `Help` folder located at the root directory of the project which contains the sorted games each by different priorities. It is there just so you can see what your output should look like in the end. -- The unit tests are provided to assist you in understanding the project requirements. Your final grade is not solely dependent on their results; they are meant to aid your learning process. Remember to enable GitHub Actions for the test workflow to run on GitHub. -- Feel free to leverage ChatGPT for learning web scraping and resolving any challenges that you may not find solutions to on the internet. Utilize its capabilities to enhance your understanding and overcome obstacles effectively. -**but It is strictly prohibited to use ChatGPT or any other AI generative model for completing any section of this assignment. Failure to comply will result in a score of 0 without any warnings.** - -## Evaluation 🧐 - -Your success will be judged based on: - -- Functionality of the code in parsing HTML, creating Java objects, and sorting data. -- Readability and maintainability of the code. -- Efficiency of sorting algorithms. -- Clarity of the output format. - -## Submission 📁 - -To share your work: - -1. Add your mentor as a contributor to the project. -2. Create a `develop` branch for implementing features. -3. Use Git for regular code commits. -4. Push your code to the remote repository. -5. Submit a pull request to merge the `develop` branch with `main`. - -The deadline for submitting your code is **Wednesday, April 23** (3th of Ordibehesht). - -If you have any further questions or need clarification, do not hesitate to reach out to your mentor. Good luck with your project! 🌟 - - -## Resources 📚 - -- [Jsoup - Official website](https://jsoup.org/cookbook/) -- [Jsoup - Javapoint](https://www.javatpoint.com/jsoup-tutorial) -- [Jsoup - Baeldung](https://www.baeldung.com/java-with-jsoup) -- [HTML - W3](https://www.w3schools.com/html/) -- [CSS - W3](https://www.w3schools.com/css/default.asp) -- [HTML & CSS - SuperSimpleDev](https://youtu.be/G3e-cpL7ofc?si=n7VZ6-SzUMqPgYH4) -- [HTML & CSS - BroCode](https://youtu.be/HGTJBPNC-Gw?si=UIfbcK-raImMT129) diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build.gradle b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build.gradle deleted file mode 100644 index 82ff37b..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build.gradle +++ /dev/null @@ -1,20 +0,0 @@ -plugins { - id 'java' -} - -group 'org.example' -version '1.0-SNAPSHOT' - -repositories { - mavenCentral() -} - -dependencies { - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1' - implementation 'org.jsoup:jsoup:1.14.3' -} - -test { - useJUnitPlatform() -} \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/classes/ParserTest.html b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/classes/ParserTest.html deleted file mode 100644 index 6888813..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/classes/ParserTest.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - -Test results - Class ParserTest - - - - - -
-

Class ParserTest

- -
- - - - - -
-
- - - - - - - -
-
-
3
-

tests

-
-
-
-
0
-

failures

-
-
-
-
0
-

ignored

-
-
-
-
0.035s
-

duration

-
-
-
-
-
-
100%
-

successful

-
-
-
-
- -
-

Tests

- - - - - - - - - - - - - - - - - - - - - - - -
TestDurationResult
testSortByArea()0.028spassed
testSortByName()0.003spassed
testSortByPopulation()0.004spassed
-
-
- -
- - diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/css/base-style.css b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/css/base-style.css deleted file mode 100644 index 4afa73e..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/css/base-style.css +++ /dev/null @@ -1,179 +0,0 @@ - -body { - margin: 0; - padding: 0; - font-family: sans-serif; - font-size: 12pt; -} - -body, a, a:visited { - color: #303030; -} - -#content { - padding-left: 50px; - padding-right: 50px; - padding-top: 30px; - padding-bottom: 30px; -} - -#content h1 { - font-size: 160%; - margin-bottom: 10px; -} - -#footer { - margin-top: 100px; - font-size: 80%; - white-space: nowrap; -} - -#footer, #footer a { - color: #a0a0a0; -} - -#line-wrapping-toggle { - vertical-align: middle; -} - -#label-for-line-wrapping-toggle { - vertical-align: middle; -} - -ul { - margin-left: 0; -} - -h1, h2, h3 { - white-space: nowrap; -} - -h2 { - font-size: 120%; -} - -ul.tabLinks { - padding-left: 0; - padding-top: 10px; - padding-bottom: 10px; - overflow: auto; - min-width: 800px; - width: auto !important; - width: 800px; -} - -ul.tabLinks li { - float: left; - height: 100%; - list-style: none; - padding-left: 10px; - padding-right: 10px; - padding-top: 5px; - padding-bottom: 5px; - margin-bottom: 0; - -moz-border-radius: 7px; - border-radius: 7px; - margin-right: 25px; - border: solid 1px #d4d4d4; - background-color: #f0f0f0; -} - -ul.tabLinks li:hover { - background-color: #fafafa; -} - -ul.tabLinks li.selected { - background-color: #c5f0f5; - border-color: #c5f0f5; -} - -ul.tabLinks a { - font-size: 120%; - display: block; - outline: none; - text-decoration: none; - margin: 0; - padding: 0; -} - -ul.tabLinks li h2 { - margin: 0; - padding: 0; -} - -div.tab { -} - -div.selected { - display: block; -} - -div.deselected { - display: none; -} - -div.tab table { - min-width: 350px; - width: auto !important; - width: 350px; - border-collapse: collapse; -} - -div.tab th, div.tab table { - border-bottom: solid #d0d0d0 1px; -} - -div.tab th { - text-align: left; - white-space: nowrap; - padding-left: 6em; -} - -div.tab th:first-child { - padding-left: 0; -} - -div.tab td { - white-space: nowrap; - padding-left: 6em; - padding-top: 5px; - padding-bottom: 5px; -} - -div.tab td:first-child { - padding-left: 0; -} - -div.tab td.numeric, div.tab th.numeric { - text-align: right; -} - -span.code { - display: inline-block; - margin-top: 0em; - margin-bottom: 1em; -} - -span.code pre { - font-size: 11pt; - padding-top: 10px; - padding-bottom: 10px; - padding-left: 10px; - padding-right: 10px; - margin: 0; - background-color: #f7f7f7; - border: solid 1px #d0d0d0; - min-width: 700px; - width: auto !important; - width: 700px; -} - -span.wrapped pre { - word-wrap: break-word; - white-space: pre-wrap; - word-break: break-all; -} - -label.hidden { - display: none; -} \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/css/style.css b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/css/style.css deleted file mode 100644 index 3dc4913..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/css/style.css +++ /dev/null @@ -1,84 +0,0 @@ - -#summary { - margin-top: 30px; - margin-bottom: 40px; -} - -#summary table { - border-collapse: collapse; -} - -#summary td { - vertical-align: top; -} - -.breadcrumbs, .breadcrumbs a { - color: #606060; -} - -.infoBox { - width: 110px; - padding-top: 15px; - padding-bottom: 15px; - text-align: center; -} - -.infoBox p { - margin: 0; -} - -.counter, .percent { - font-size: 120%; - font-weight: bold; - margin-bottom: 8px; -} - -#duration { - width: 125px; -} - -#successRate, .summaryGroup { - border: solid 2px #d0d0d0; - -moz-border-radius: 10px; - border-radius: 10px; -} - -#successRate { - width: 140px; - margin-left: 35px; -} - -#successRate .percent { - font-size: 180%; -} - -.success, .success a { - color: #008000; -} - -div.success, #successRate.success { - background-color: #bbd9bb; - border-color: #008000; -} - -.failures, .failures a { - color: #b60808; -} - -.skipped, .skipped a { - color: #c09853; -} - -div.failures, #successRate.failures { - background-color: #ecdada; - border-color: #b60808; -} - -ul.linkList { - padding-left: 0; -} - -ul.linkList li { - list-style: none; - margin-bottom: 5px; -} diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/index.html b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/index.html deleted file mode 100644 index d2f1ae9..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/index.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - -Test results - Test Summary - - - - - -
-

Test Summary

-
- - - - - -
-
- - - - - - - -
-
-
3
-

tests

-
-
-
-
0
-

failures

-
-
-
-
0
-

ignored

-
-
-
-
0.035s
-

duration

-
-
-
-
-
-
100%
-

successful

-
-
-
-
- -
-

Packages

- - - - - - - - - - - - - - - - - - - - - -
PackageTestsFailuresIgnoredDurationSuccess rate
-default-package -3000.035s100%
-
-
-

Classes

- - - - - - - - - - - - - - - - - - - - - -
ClassTestsFailuresIgnoredDurationSuccess rate
-ParserTest -3000.035s100%
-
-
- -
- - diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/js/report.js b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/js/report.js deleted file mode 100644 index 83bab4a..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/js/report.js +++ /dev/null @@ -1,194 +0,0 @@ -(function (window, document) { - "use strict"; - - var tabs = {}; - - function changeElementClass(element, classValue) { - if (element.getAttribute("className")) { - element.setAttribute("className", classValue); - } else { - element.setAttribute("class", classValue); - } - } - - function getClassAttribute(element) { - if (element.getAttribute("className")) { - return element.getAttribute("className"); - } else { - return element.getAttribute("class"); - } - } - - function addClass(element, classValue) { - changeElementClass(element, getClassAttribute(element) + " " + classValue); - } - - function removeClass(element, classValue) { - changeElementClass(element, getClassAttribute(element).replace(classValue, "")); - } - - function initTabs() { - var container = document.getElementById("tabs"); - - tabs.tabs = findTabs(container); - tabs.titles = findTitles(tabs.tabs); - tabs.headers = findHeaders(container); - tabs.select = select; - tabs.deselectAll = deselectAll; - tabs.select(0); - - return true; - } - - function getCheckBox() { - return document.getElementById("line-wrapping-toggle"); - } - - function getLabelForCheckBox() { - return document.getElementById("label-for-line-wrapping-toggle"); - } - - function findCodeBlocks() { - var spans = document.getElementById("tabs").getElementsByTagName("span"); - var codeBlocks = []; - for (var i = 0; i < spans.length; ++i) { - if (spans[i].className.indexOf("code") >= 0) { - codeBlocks.push(spans[i]); - } - } - return codeBlocks; - } - - function forAllCodeBlocks(operation) { - var codeBlocks = findCodeBlocks(); - - for (var i = 0; i < codeBlocks.length; ++i) { - operation(codeBlocks[i], "wrapped"); - } - } - - function toggleLineWrapping() { - var checkBox = getCheckBox(); - - if (checkBox.checked) { - forAllCodeBlocks(addClass); - } else { - forAllCodeBlocks(removeClass); - } - } - - function initControls() { - if (findCodeBlocks().length > 0) { - var checkBox = getCheckBox(); - var label = getLabelForCheckBox(); - - checkBox.onclick = toggleLineWrapping; - checkBox.checked = false; - - removeClass(label, "hidden"); - } - } - - function switchTab() { - var id = this.id.substr(1); - - for (var i = 0; i < tabs.tabs.length; i++) { - if (tabs.tabs[i].id === id) { - tabs.select(i); - break; - } - } - - return false; - } - - function select(i) { - this.deselectAll(); - - changeElementClass(this.tabs[i], "tab selected"); - changeElementClass(this.headers[i], "selected"); - - while (this.headers[i].firstChild) { - this.headers[i].removeChild(this.headers[i].firstChild); - } - - var h2 = document.createElement("H2"); - - h2.appendChild(document.createTextNode(this.titles[i])); - this.headers[i].appendChild(h2); - } - - function deselectAll() { - for (var i = 0; i < this.tabs.length; i++) { - changeElementClass(this.tabs[i], "tab deselected"); - changeElementClass(this.headers[i], "deselected"); - - while (this.headers[i].firstChild) { - this.headers[i].removeChild(this.headers[i].firstChild); - } - - var a = document.createElement("A"); - - a.setAttribute("id", "ltab" + i); - a.setAttribute("href", "#tab" + i); - a.onclick = switchTab; - a.appendChild(document.createTextNode(this.titles[i])); - - this.headers[i].appendChild(a); - } - } - - function findTabs(container) { - return findChildElements(container, "DIV", "tab"); - } - - function findHeaders(container) { - var owner = findChildElements(container, "UL", "tabLinks"); - return findChildElements(owner[0], "LI", null); - } - - function findTitles(tabs) { - var titles = []; - - for (var i = 0; i < tabs.length; i++) { - var tab = tabs[i]; - var header = findChildElements(tab, "H2", null)[0]; - - header.parentNode.removeChild(header); - - if (header.innerText) { - titles.push(header.innerText); - } else { - titles.push(header.textContent); - } - } - - return titles; - } - - function findChildElements(container, name, targetClass) { - var elements = []; - var children = container.childNodes; - - for (var i = 0; i < children.length; i++) { - var child = children.item(i); - - if (child.nodeType === 1 && child.nodeName === name) { - if (targetClass && child.className.indexOf(targetClass) < 0) { - continue; - } - - elements.push(child); - } - } - - return elements; - } - - // Entry point. - - window.onload = function() { - initTabs(); - initControls(); - }; -} (window, window.document)); \ No newline at end of file diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/packages/default-package.html b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/packages/default-package.html deleted file mode 100644 index 2ffe0cb..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/reports/tests/test/packages/default-package.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - -Test results - Default package - - - - - -
-

Default package

- -
- - - - - -
-
- - - - - - - -
-
-
3
-

tests

-
-
-
-
0
-

failures

-
-
-
-
0
-

ignored

-
-
-
-
0.035s
-

duration

-
-
-
-
-
-
100%
-

successful

-
-
-
-
- -
-

Classes

- - - - - - - - - - - - - - - - - - - -
ClassTestsFailuresIgnoredDurationSuccess rate
-ParserTest -3000.035s100%
-
-
- -
- - diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/TEST-ParserTest.xml b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/TEST-ParserTest.xml deleted file mode 100644 index 0dd5d0b..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/TEST-ParserTest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/binary/output.bin b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/binary/output.bin deleted file mode 100644 index e69de29..0000000 diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/binary/output.bin.idx b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/binary/output.bin.idx deleted file mode 100644 index f76dd238ade08917e6712764a16a22005a50573d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1 IcmZPo000310RR91 diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/binary/results.bin b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/test-results/test/binary/results.bin deleted file mode 100644 index 05d8f6a58910abd267306c985d8b5740e596d00d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmZQ(WaC zX|^gWgcgnE9|}0yG-bmU2eVB7^`0>D-Cn&@q29V2mxy z^rCqDSHSMF9^>HjNt8Fmn+y&!qhr)8|5a!lH#3jPp%(sc{7KB8k~MXikBGzfg$9e( zRA%-gjukWbdd7FPnzn}?;bE6^ed`9wrsYr1p5!+J99pxMHJGriu+cm1_2i3XpXnp_ zO`5abUlfoRs0^ZlDc($Q7{{XLzXnc28Kc*dOo+hF(kv4Kb#w7M_qzw;sqE%X=lql5 z=Td$P%?qPuQM_>CI$grBR(=FDl8sJlW^w=APcDR9n%CBKX3O(ME50z!&W#jB$-F3N zGU)XrOszrBp977I*=W$48N6VATh6HB{KOFDtfH^ltzxlst}-YZY$k@82M&u?S4=L2 z!@hdO_9)|Ma=aibEG8!+Mmaw(RwPjd#ev=BFF)Sptcgv4db$)(dGo%)@9<>D`{yFI ztB!i<0`WE9J3ePF<}F}u#8+zk=lCWnIZ0r%8X0`;;JQ8M-Md9ezu((EDBZU^IX7|v zIG73xLqd5w?RvbYZO&>{K~-A=ntY#19w!`WKuY^}tHQ?`h8VCDGEH zAQ?1_7t!paZJO+c`28pPHx9KW)VHR|(q$QzCQu0-6}7|_3W+M=+Wv}MxV z>^v%)uLK9V5sOZ@9O|t3B_qGNH@a&gNcvCjb?-H?94p|%SvvLaVP1H) z!m%nvw8!F1d)c0)s8E9IzWr-&U*?s*xOs;c2cNxlxFBQtDrnH^$njWy?YMW(AxaW{-mJ?nUmB^0dd6xX6{*8@!3FAXN-z6$4VDkR-0FxB zV&&D2HJxxg_~(B{tTZ1S9Kl%B-m99*DH&+-d9$MkHcSY>2b)Xdp1guXTikA(^-gbZ zG*ZEGJbWT#MZ}LETSg;#dj|S0@GBN_P0+-$CaucCGG=@O>Mm{1?|++;#P1!BesRT| z%__MTQnOX8A8zh{Fy+09=eOUgdVH#TQ+QEj)`s+qDrhjPX(Qu@Zw?5(GEQAQ)vejN zvGlr4YL!=~7uJB?WHOjGg3a}J4>GCI58Jbzo~@C6_~1n8xlPpT6mK&rVn%0VOmZA4 z`6cYj&ZZ-&6&+Jvzxl1B7UgY03ZFVeniXrbuxs$`?{8ZU#41vY@}4D2PWrx4kED?{ z1U8y9gJ1A|;SWATt&b0X^r*&vm)effCp92&R?<2P?P_8@tEoGe8b4bacQU*B{NPAH z6yEv4=x|(6etgZ}?~hE)eI|9F6=99UM5ATL`w?#y)2uGMz{nn}FxC zQ#n-S6i60|M?ku<4=!AhWa}aQYD2gNZCs4;*xMi zm)p$NPdRrt^FRM>M?hEZRz&gSIOVP0xRn-p@2QgVO8ZDnYa3d~Z6{v*?_RJ+PXCPV z#dm6E`WMbiS-#=eHk7*^$%5z|Bry!_>T$m+z)1TR4cnOd*QU$9zSn_du{&KJmAhUN z+RGx94^52gJ?*KoZP{6HuiD@9MJEzT zLU75lClywmD)(iabceR|yC0&aAV3_LhJdRQV5mSa!GS_!#7?w2Mb(A`;7{ZM5Q>1~ zKth;Js3Ti6BM56LX@H zg^)Hbt|iZ;XN5VDoW>CdL4d#`R4nCSJ8~eXCqmBbWU!N!92rF@ju0F!N(eawYAY&U zD%b=oh@hT$CLz`_;y@=_*MvGq#)%@Ai3x;)KjK@Bz^y{ORtilnVB+^$vWNw+Zk%dy z0ZTwdP^Os^3sN`&Xmde0P(>&(<2o9mQUKcs+s$7b7yuju?z6>GRg@5PL?bF0I{v`k vefBeV}uKp138J~I9b2m9f6 diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/tmp/compileTestJava/previous-compilation-data.bin b/Last-Year/Fourth-Assignment-Steam-Scraper-main/build/tmp/compileTestJava/previous-compilation-data.bin deleted file mode 100644 index e3bdb4a7b37e8ac2c02bb7414cfa2efb6bab735c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 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 diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/gradle/wrapper/gradle-wrapper.properties b/Last-Year/Fourth-Assignment-Steam-Scraper-main/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 41dfb87..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/gradlew b/Last-Year/Fourth-Assignment-Steam-Scraper-main/gradlew deleted file mode 100644 index 1b6c787..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/gradlew +++ /dev/null @@ -1,234 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/gradlew.bat b/Last-Year/Fourth-Assignment-Steam-Scraper-main/gradlew.bat deleted file mode 100644 index 107acd3..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/gradlew.bat +++ /dev/null @@ -1,89 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/settings.gradle b/Last-Year/Fourth-Assignment-Steam-Scraper-main/settings.gradle deleted file mode 100644 index d0bef46..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/settings.gradle +++ /dev/null @@ -1,2 +0,0 @@ -rootProject.name = 'HTML-Parser' - diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/Resources/Video_Games.html b/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/Resources/Video_Games.html deleted file mode 100644 index a7f5735..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/Resources/Video_Games.html +++ /dev/null @@ -1,805 +0,0 @@ -

-
-
-
-
-

- Video Game List: To Scrape -

-
-
-
- - -
-
-

Far Cry 4

-
- Rating: 4.8/5
- Price: 91 €
-
-
- -
-

Super Mario Galaxy

-
- Rating: 4.6/5
- Price: 91 €
-
-
- -
-

Devil May Cry 5

-
- Rating: 4.7/5
- Price: 91 €
-
-
- -
-

Metroid Prime

-
- Rating: 4.5/5
- Price: 89 €
-
-
- -
-

Super Mario Odyssey

-
- Rating: 4.9/5
- Price: 89 €
-
-
- -
-

Halo: Combat Evolved

-
- Rating: 4.6/5
- Price: 87 €
-
-
- -
-

The House in Fata Morgana

-
- Rating: 4.3/5
- Price: 83 €
-
-
- -
-

Uncharted 2: Among Thieves

-
- Rating: 4.7/5
- Price: 88 €
-
-
- -
-

Tekken 3

-
- Rating: 4.4/5
- Price: 91 €
-
-
- -
-

The Legend of Zelda: The Wind Waker

-
- Rating: 4.8/5
- Price: 90 €
-
-
- -
-

Metal Gear Solid 2: Sons of Liberty

-
- Rating: 4.7/5
- Price: 88 €
-
-
- -
-

Baldur's Gate II: Shadows of Amn

-
- Rating: 4.9/5
- Price: 91 €
-
-
-
-

The Legend of Zelda Collector's Edition

-
- Rating: 4.7/5
- Price: 89 €
-
-
- -
-

Gran Turismo 3: A-Spec

-
- Rating: 4.5/5
- Price: 84 €
-
-
- -
-

The Legend of Zelda: A Link to the Past

-
- Rating: 4.8/5
- Price: 90 €
-
-
- -
-

The Legend of Zelda: Majora's Mask

-
- Rating: 4.6/5
- Price: 91 €
-
-
- -
-

The Last of Us

-
- Rating: 4.9/5
- Price: 92 €
-
-
- -
-

Persona 5 Royal

-
- Rating: 4.7/5
- Price: 84 €
-
-
-
-

Resident Evil Code: Veronica

-
- Rating: 4.6/5
- Price: 85 €
-
-
- -
-

Diablo

-
- Rating: 4.8/5
- Price: 87 €
-
-
- -
-

Metal Gear Solid 3: Subsistence

-
- Rating: 4.7/5
- Price: 91 €
-
-
- -
-

Metal Gear Solid 4: Guns of the Patriots

-
- Rating: 4.5/5
- Price: 88 €
-
-
- -
-

Sid Meier's Civilization IV

-
- Rating: 4.3/5
- Price: 82 €
-
-
- -
-

Virtua Fighter 4

-
- Rating: 4.4/5
- Price: 81 €
-
-
- -
-

Far Cry 3

-
- Rating: 4.9/5
- Price: 80 €
-
-
- -
-

Tom Clancy's Rainbow Six Siege

-
- Rating: 4.6/5
- Price: 88 €
-
-
- -
-

Company of Heroes

-
- Rating: 4.7/5
- Price: 87 €
-
-
- -
-

Gran Turismo 2

-
- Rating: 4.6/5
- Price: 90 €
-
-
- -
-

The Last of Us Part II

-
- Rating: 4.9/5
- Price: 57 €
-
-
- -
-

Half-Life: Alyx

-
- Rating: 4.8/5
- Price: 92 €
-
-
- -
-

Divinity: Original Sin II

-
- Rating: 4.7/5
- Price: 88 €
-
-
- -
-

Unreal Tournament 2004

-
- Rating: 4.6/5
- Price: 88 €
-
-
- -
-

God of War II

-
- Rating: 4.9/5
- Price: 90 €
-
-
- -
-

Super Mario 3D World

-
- Rating: 4.7/5
- Price: 89 €
-
-
- -
-

Paper Mario

-
- Rating: 4.5/5
- Price: 90 €
-
-
- -
-

Wipeout XL

-
- Rating: 4.3/5
- Price: 86 €
-
-
- -
-

World of Warcraft

-
- Rating: 4.8/5
- Price: 74 €
-
-
- -
-

Flipnote Studio

-
- Rating: 4.2/5
- Price: 75 €
-
-
- -
-

God of War III

-
- Rating: 4.9/5
- Price: 88 €
-
-
- -
-

NHL 2002

-
- Rating: 4.0/5
- Price: 83 €
-
-
- -
-

Uncharted 3: Drake's Deception

-
- Rating: 4.7/5
- Price: 84 €
-
-
- -
-

Bloodborne

-
- Rating: 4.8/5
- Price: 88 €
-
-
- -
-

Eternal Darkness: Sanity's Requiem

-
- Rating: 4.6/5
- Price: 87 €
-
-
- -
-

Warcraft III: Reign of Chaos

-
- Rating: 4.9/5
- Price: 92 €
-
-
- -
-

Sid Meier's Gettysburg!

-
- Rating: 4.4/5
- Price: 74 €
-
-
- -
-

Forza Motorsport

-
- Rating: 4.6/5
- Price: 76 €
-
-
- -
-

Advance Wars

-
- Rating: 4.7/5
- Price: 89 €
-
-
- -
-

Vagrant Story

-
- Rating: 4.5/5
- Price: 90 €
-
-
- -
-

Team Fortress 2

-
- Rating: 4.8/5
- Price: 90 €
-
-
- -
-

System Shock 2

-
- Rating: 4.6/5
- Price: 91 €
-
-
- -
-

Final Fantasy XII

-
- Rating: 4.7/5
- Price: 76 €
-
-
- -
-

Super Mario World: Super Mario Advance 2

-
- Rating: 4.6/5
- Price: 90 €
-
-
- -
-

Super Smash Bros. Melee

-
- Rating: 4.8/5
- Price: 91 €
-
-
- -
-

Rome: Total War

-
- Rating: 4.9/5
- Price: 90 €
-
-
- -
-

Forza Motorsport 3

-
- Rating: 4.7/5
- Price: 81 €
-
-
- -
-

Super Mario Sunshine

-
- Rating: 4.5/5
- Price: 84 €
-
-
- -
-

Tony Hawk's Pro Skater

-
- Rating: 4.8/5
- Price: 88 €
-
-
-
-

Portal: Still Alive

-
- Rating: 3.9/5
- Price: 86 €
-
-
- -
-

Half-Life 2: Episode Two

-
- Rating: 4.2/5
- Price: 92 €
-
-
- -
-

The Chronicles of Riddick: Escape From Butcher Bay - Developer's Cut

-
- Rating: 3.8/5
- Price: 86 €
-
-
- -
-

Shin Megami Tensei: Persona 4

-
- Rating: 4.1/5
- Price: 77 €
-
-
- -
-

Hollow Knight

-
- Rating: 4.3/5
- Price: 90 €
-
-
- -
-

Blast Corps

-
- Rating: 3.7/5
- Price: 83 €
-
-
- -
-

Sid Meier's Civilization III

-
- Rating: 4.0/5
- Price: 84 €
-
-
- -
-

NFL 2K2

-
- Rating: 3.6/5
- Price: 71 €
-
-
- -
-

WWF SmackDown! 2: Know Your Role

-
- Rating: 4.2/5
- Price: 84 €
-
-
- -
-

Silent Hunter III

-
- Rating: 3.9/5
- Price: 78 €
-
-
- -
-

Dead Space 2

-
- Rating: 4.4/5
- Price: 86 €
-
-
- -
-

Pikmin 2

-
- Rating: 4.0/5
- Price: 90 €
-
-
- -
-

Geometry Wars: Retro Evolved 2

-
- Rating: 3.8/5
- Price: 83 €
-
-
- -
-

Sid Meier's Civilization V

-
- Rating: 4.3/5
- Price: 80 €
-
-
- -
-

Super Mario 3D Land

-
- Rating: 4.1/5
- Price: 84 €
-
-
- -
-

Mario Kart 8 DLC Pack 2

-
- Rating: 3.9/5
- Price: 89 €
-
-
-
-

Project Gotham Racing 3

-
- Rating: 4.2/5
- Price: 79 €
-
-
-
-

The World Ends with You

-
- Rating: 4.5/5
- Price: 87 €
-
-
-
-

Dishonored 2

-
- Rating: 4.3/5
- Price: 80 €
-
-
-
-

Injustice 2: Legendary Edition

-
- Rating: 4.0/5
- Price: 77 €
-
-
-
-

Divinity: Original Sin Enhanced Edition

-
- Rating: 4.6/5
- Price: 80 €
-
-
-
-

Minecraft: Xbox One Edition

-
- Rating: 4.4/5
- Price: 73 €
-
-
-
-

JSRF: Jet Set Radio Future

-
- Rating: 4.1/5
- Price: 83 €
-
-
-
-

Red Faction

-
- Rating: 3.9/5
- Price: 79 €
-
-
-
-

Call of Duty: Modern Warfare Remastered

-
- Rating: 3.9/5
- Price: 71 €
-
-
- -
-

Titanfall

-
- Rating: 4.2/5
- Price: 61 €
-
-
- -
-

Call of Duty: Black Ops III

-
- Rating: 3.7/5
- Price: 50 €
-
-
- -
-

Watch Dogs 2

-
- Rating: 4.1/5
- Price: 81 €
-
-
- -
-

Call of Duty: Black Ops II

-
- Rating: 3.8/5
- Price: 50 €
-
-
- -
-

Call of Duty: Infinite Warfare - Sabotage

-
- Rating: 4.3/5
- Price: 18 €
-
-
- -
-

Call of Duty: Advanced Warfare - Reckoning

-
- Rating: 3.5/5
- Price: 57 €
-
-
- -
-

Call of Duty: Advanced Warfare - Ascendance

-
- Rating: 4.0/5
- Price: 67 €
-
-
- -
-

Grand Theft Auto V

-
- Rating: 3.6/5
- Price: 36 €
-
-
- -
-

Call of Duty: Advanced Warfare - Supremacy

-
- Rating: 4.4/5
- Price: 64 €
-
-
-
-

CS student simulator

-
- Rating: 1.0/5
- Price: 85 €
-
-
- -
-

Resident Evil (2002)

-
- Rating: 4.2/5
- Price: 92 €
-
-
- -
-

Resident Evil 4: Wii Edition

-
- Rating: 3.9/5
- Price: 89 €
-
-
- -
-

Doom 3

-
- Rating: 4.1/5
- Price: 81 €
-
-
- -
-

Tekken: Dark Resurrection

-
- Rating: 3.8/5
- Price: 86 €
-
-
- -
-

The Stanley Parable

-
- Rating: 4.0/5
- Price: 80 €
-
-
- -
-

Slay the Spire

-
- Rating: 3.5/5
- Price: 69 €
-
-
- -
-

Guacamelee! Gold Edition

-
- Rating: 4.3/5
- Price: 75 €
-
-
- -
-

Counter-Strike: Source

-
- Rating: 4.4/5
- Price: 89 €
-
-
- -
-
-
-
diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/main/java/Game.java b/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/main/java/Game.java deleted file mode 100644 index 79ed925..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/main/java/Game.java +++ /dev/null @@ -1,40 +0,0 @@ -import java.util.Objects; - -public class Game { - private String name; - private double rating; - private int price; - - public Game(String name, double rating, int price) { - //TODO - - } - - public String getName() { - return name; - } - - - public double getRating() { - return rating; - } - - public int getPrice() { - return price; - } - - @Override - public String toString() { - //TODO - return ""; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - Game game = (Game) o; - return Double.compare(game.rating, rating) == 0 && Double.compare(game.price, price) == 0 && Objects.equals(name, game.name); - } - -} diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/main/java/Parser.java b/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/main/java/Parser.java deleted file mode 100644 index e6ba90f..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/main/java/Parser.java +++ /dev/null @@ -1,48 +0,0 @@ -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.jsoup.nodes.Element; -import org.jsoup.select.Elements; -import java.io.File; -import java.io.IOException; -import java.util.*; - -public class Parser { - static List games = new ArrayList<>(); - - public List sortByName(){ - List sortedByName = new ArrayList<>(games); - // Sort games alphabetically (least) - //TODO - return sortedByName; - } - - public List sortByRating(){ - List sortedByRating = new ArrayList<>(games); - // Sort games by rating (most) - //TODO - return sortedByRating; - } - - public List sortByPrice(){ - List sortedByPrice = new ArrayList<>(games); - // Sort games by price (most) - //TODO - return sortedByPrice; - } - - public void setUp() throws IOException { - - //Parse the HTML file using Jsoup - //TODO - - // Extract data from the HTML - //TODO - - // Iterate through each Game div to extract Game data - //TODO - } - - public static void main(String[] args) { - //you can test your code here before you run the unit tests - } -} diff --git a/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/test/java/ParserTest.java b/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/test/java/ParserTest.java deleted file mode 100644 index 70863a4..0000000 --- a/Last-Year/Fourth-Assignment-Steam-Scraper-main/src/test/java/ParserTest.java +++ /dev/null @@ -1,76 +0,0 @@ -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -public class ParserTest { - - public static Parser handle; - - @BeforeAll - static void setUp() throws IOException { - handle = new Parser(); - handle.setUp(); - } - - @Test - public void testSortByName() { - List sortedGames = handle.sortByName(); - Game g1 = new Game("Bloodborne" ,4.8,88); - Game g2 = new Game("Gran Turismo 2" ,4.6,90); - Game g3 = new Game("Resident Evil Code: Veronica" ,4.6,85); - Game g4 = new Game("Super Smash Bros. Melee" ,4.8,91); - Game g5 = new Game("The Last of Us" ,4.9,92); - Game g6 = new Game("Wipeout XL" ,4.3,86); - - assertEquals(100, sortedGames.size()); - assertEquals(sortedGames.get(3),g1); - assertEquals(sortedGames.get(31),g2); - assertEquals(sortedGames.get(57),g3); - assertEquals(sortedGames.get(72),g4); - assertEquals(sortedGames.get(79),g5); - assertEquals(sortedGames.get(98),g6); - } - - @Test - public void testSortByPrice() { - List sortedGames = handle.sortByPrice(); - Game g1 = new Game("Tekken 3" ,4.4,91); - Game g2 = new Game("The Legend of Zelda: The Wind Waker" ,4.8,90); - Game g3 = new Game("Advance Wars" ,4.7,89); - Game g4 = new Game("Company of Heroes" ,4.7,87); - Game g5 = new Game("Uncharted 3: Drake's Deception" ,4.7,84); - Game g6 = new Game("Final Fantasy XII" ,4.7,76); - - assertEquals(100, sortedGames.size()); - assertEquals(sortedGames.get(8),g1); - assertEquals(sortedGames.get(14),g2); - assertEquals(sortedGames.get(29),g3); - assertEquals(sortedGames.get(44),g4); - assertEquals(sortedGames.get(56),g5); - assertEquals(sortedGames.get(82),g6); - } - - @Test - public void testSortByRating() { - List sortedGames = handle.sortByRating(); - Game g1 = new Game("God of War II" ,4.9,90); - Game g2 = new Game("Diablo" ,4.8,87); - Game g3 = new Game("Advance Wars" ,4.7,89); - Game g4 = new Game("Unreal Tournament 2004" ,4.6,88); - Game g5 = new Game("Gran Turismo 3: A-Spec" ,4.5,84); - Game g6 = new Game("Call of Duty: Infinite Warfare - Sabotage" ,4.3,18); - - assertEquals(100, sortedGames.size()); - assertEquals(sortedGames.get(5),g1); - assertEquals(sortedGames.get(12),g2); - assertEquals(sortedGames.get(29),g3); - assertEquals(sortedGames.get(38),g4); - assertEquals(sortedGames.get(45),g5); - assertEquals(sortedGames.get(64),g6); - } -}