diff options
| author | A Farzat <a@farzat.xyz> | 2025-10-06 05:48:23 +0300 |
|---|---|---|
| committer | A Farzat <a@farzat.xyz> | 2025-10-06 05:48:23 +0300 |
| commit | 2b2738c55677aa627a91b5a38f8b14187bb44d0d (patch) | |
| tree | c113800d480b329cb71b3d8bf406b9cd3d7eadc1 | |
| parent | eaeb27d20a4d212a3ec3260ca0ccbfff31496358 (diff) | |
| download | csca5028-2b2738c55677aa627a91b5a38f8b14187bb44d0d.tar.gz csca5028-2b2738c55677aa627a91b5a38f8b14187bb44d0d.zip | |
Add unit tests for analyser module
| -rw-r--r-- | tests/analyser.py | 138 | ||||
| -rw-r--r-- | tests/data/feed@mentaloutlaw@001.xml | 683 |
2 files changed, 821 insertions, 0 deletions
diff --git a/tests/analyser.py b/tests/analyser.py new file mode 100644 index 0000000..acb4d44 --- /dev/null +++ b/tests/analyser.py @@ -0,0 +1,138 @@ +from hashlib import md5 +from typing import Any, Dict +from unittest import TestCase +from unittest.mock import MagicMock, patch + +from mongomock import MongoClient +from pymongo.collection import Collection + +from components.subscriptions.main import Subscription +from components.subscriptions.typing import SubsDict +from components.videos import VideoTuple +from components.ytdlp import obtain_vid_info +from data_analyser.utils import analyse_video, analyse_subscription, analyse_collection + +def url_based_extract_info(url: str, download: Any=None) -> Dict[str, Any]: + hash = md5(url.encode()).hexdigest() + hash_int = int(hash[:4], 16) + seconds = hash_int % 60 + minutes = hash_int // 60 + hours = minutes // 60 + minutes = minutes % 60 + if hours: + duration_string = "%d:%02d:%02d" % (hours, minutes, seconds) + elif minutes: + duration_string = "%d:%02d" % (minutes, seconds) + else: + duration_string = "%d" % (seconds, ) + return { + "duration_string": duration_string, + "other_key": "other_value", + "other key": "other value", + } + +class TestAnalyser(TestCase): + def setUp(self) -> None: + self.client: MongoClient[Any] = MongoClient(tz_aware=True) + self.collection: Collection[SubsDict] = self.client.db.collection + + self.sub1 = Subscription( + _id="yt:channel:hlgI3UHCOnwUGzWzbJ3H5w", + link=r"tests/data/feed@ytnnews24@001.xml", + time_between_fetches=1, + ) + self.sub1._collection = self.collection + self.sub1.insert() + self.sub1.fetch() + + self.mock_ydl_class = patch('components.ytdlp.YoutubeDL').start() + self.mock_ydl_instance = MagicMock() + self.mock_ydl_class.return_value.__enter__.return_value = self.mock_ydl_instance + self.mock_ydl_instance.extract_info.side_effect = url_based_extract_info + self.addCleanup(patch.stopall) + + def test_obtain_vid_info(self) -> None: + result = obtain_vid_info(self.sub1.videos[0].link) + expected_duration = url_based_extract_info(self.sub1.videos[0].link)["duration_string"] + self.assertEqual(result, {"duration_string": expected_duration}) + + def test_obtain_vid_info_with_exception(self) -> None: + self.mock_ydl_instance.extract_info.side_effect = Exception("Network error") + + result = obtain_vid_info(self.sub1.videos[0].link) + expected_keys = {"duration_string"} + actual_keys = set(result.keys()) + self.assertEqual(expected_keys, actual_keys, + "Expected keys %s, got %s." % (expected_keys, actual_keys)) + self.assertRegex(result["duration_string"], "^-1:[0-5][0-9]$") + + def test_analyse_video(self) -> None: + modified_vid = analyse_video(self.sub1.videos[1]) + + expected_duration = url_based_extract_info(self.sub1.videos[1].link)["duration_string"] + self.assertIsInstance(modified_vid, VideoTuple) + self.assertEqual(modified_vid.duration_string, expected_duration) + self.assertTrue(modified_vid.analysed) + + def test_analyse_video_with_exception(self) -> None: + self.mock_ydl_instance.extract_info.side_effect = Exception("Network error") + + modified_vid = analyse_video(self.sub1.videos[0]) + self.assertIsInstance(modified_vid, VideoTuple) + self.assertRegex(modified_vid.duration_string, "^-1:[0-5][0-9]$") + self.assertTrue(modified_vid.analysed) + + def test_analyse_subscription(self) -> None: + self.assertTrue(analyse_subscription(self.sub1)) + for vid in self.sub1.videos: + expected_duration = url_based_extract_info(vid.link)["duration_string"] + self.assertEqual(vid.duration_string, expected_duration) + self.assertTrue(vid.analysed) + + def test_analyse_subscription_with_further_fetch(self) -> None: + self.assertTrue(analyse_subscription(self.sub1)) + for vid in self.sub1.videos: + expected_duration = url_based_extract_info(vid.link)["duration_string"] + self.assertEqual(vid.duration_string, expected_duration) + self.assertTrue(vid.analysed) + self.sub1.link = r"tests/data/feed@ytnnews24@002.xml" + self.sub1.fetch() + self.assertTrue(analyse_subscription(self.sub1)) + for vid in self.sub1.videos: + expected_duration = url_based_extract_info(vid.link)["duration_string"] + self.assertEqual(vid.duration_string, expected_duration) + self.assertTrue(vid.analysed) + + def test_analyse_subscription_without_further_fetch(self) -> None: + self.assertTrue(analyse_subscription(self.sub1)) + for vid in self.sub1.videos: + expected_duration = url_based_extract_info(vid.link)["duration_string"] + self.assertEqual(vid.duration_string, expected_duration) + self.assertTrue(vid.analysed) + self.assertFalse(analyse_subscription(self.sub1)) + + def test_analyse_collection(self) -> None: + self.assertEqual(analyse_collection(self.collection), 1) + for sub_dict in self.collection.find(): + for vid in map(VideoTuple._make, sub_dict["videos"]): + expected_duration = url_based_extract_info(vid.link)["duration_string"] + self.assertEqual(vid.duration_string, expected_duration) + self.assertTrue(vid.analysed) + self.sub2 = Subscription( + _id="yt:channel:7YOGHUfC1Tb6E4pudI9STA", + link=r"tests/data/feed@mentaloutlaw@001.xml", + time_between_fetches=1, + ) + self.sub2._collection = self.collection + self.sub2.insert() + self.sub2.fetch() + self.assertEqual(analyse_collection(self.collection), 1) + for sub_dict in self.collection.find(): + sub = Subscription(**sub_dict) + for vid in map(VideoTuple._make, sub_dict["videos"]): + expected_duration = url_based_extract_info(vid.link)["duration_string"] + self.assertEqual(vid.duration_string, expected_duration) + self.assertTrue(vid.analysed) + + def tearDown(self) -> None: + self.client.close() diff --git a/tests/data/feed@mentaloutlaw@001.xml b/tests/data/feed@mentaloutlaw@001.xml new file mode 100644 index 0000000..f8f8562 --- /dev/null +++ b/tests/data/feed@mentaloutlaw@001.xml @@ -0,0 +1,683 @@ +<?xml version="1.0" encoding="UTF-8"?> +<feed xmlns:yt="http://www.youtube.com/xml/schemas/2015" xmlns:media="http://search.yahoo.com/mrss/" xmlns="http://www.w3.org/2005/Atom"> + <link rel="self" href="http://www.youtube.com/feeds/videos.xml?channel_id=UC7YOGHUfC1Tb6E4pudI9STA"/> + <id>yt:channel:7YOGHUfC1Tb6E4pudI9STA</id> + <yt:channelId>7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>Mental Outlaw</title> + <link rel="alternate" href="https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2012-11-07T21:01:17+00:00</published> + <entry> + <id>yt:video:FgqhzyDsHoE</id> + <yt:videoId>FgqhzyDsHoE</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>Google's AI Is Banning Innocent User Accounts</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=FgqhzyDsHoE"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-10-03T20:25:51+00:00</published> + <updated>2025-10-04T08:08:01+00:00</updated> + <media:group> + <media:title>Google's AI Is Banning Innocent User Accounts</media:title> + <media:content url="https://www.youtube.com/v/FgqhzyDsHoE?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i3.ytimg.com/vi/FgqhzyDsHoE/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I discuss how people have been getting their Google accounts deleted for photos synced to Google drive and images generated with AI that falsely get get flagged for CSAM or other policy violations. Google has a history of not re-instating disabled accounts even have law enforcement investigations conclude there was no crime committed. + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n + +Ethereum +0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079 + +Litecoin +MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF</media:description> + <media:community> + <media:starRating count="3836" average="5.00" min="1" max="5"/> + <media:statistics views="45452"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:LlyGD1nbq0k</id> + <yt:videoId>LlyGD1nbq0k</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>Smart Appliances Are Showing Ads Now</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=LlyGD1nbq0k"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-09-26T18:47:04+00:00</published> + <updated>2025-10-04T18:50:37+00:00</updated> + <media:group> + <media:title>Smart Appliances Are Showing Ads Now</media:title> + <media:content url="https://www.youtube.com/v/LlyGD1nbq0k?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i1.ytimg.com/vi/LlyGD1nbq0k/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I discuss how the screens being added to new cars and home appliances are being used to serve online ads to the owners of those vehicles and appliances. + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n + +Ethereum +0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079 + +Litecoin +MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF</media:description> + <media:community> + <media:starRating count="6714" average="5.00" min="1" max="5"/> + <media:statistics views="98614"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:zp_qHcQQyz8</id> + <yt:videoId>zp_qHcQQyz8</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>The FBI Arrested A Major Tor Node Operator</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=zp_qHcQQyz8"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-09-20T23:29:28+00:00</published> + <updated>2025-09-28T23:39:40+00:00</updated> + <media:group> + <media:title>The FBI Arrested A Major Tor Node Operator</media:title> + <media:content url="https://www.youtube.com/v/zp_qHcQQyz8?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i3.ytimg.com/vi/zp_qHcQQyz8/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I discuss how Conrad Rockenhaus the founder of GreyPony IT a company that ran several high bandwidth Tor exit nodes allegedly refused a deal to work with the FBI and what happened as a result. + +Public court records associated with this case +https://www.courtlistener.com/docket/69848942/united-states-v-rockenhaus/ + +Adrienne Rockenhaus's account of what's happened +https://rockenhaus.com/press-kit/ + + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n + +Ethereum +0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079 + +Litecoin +MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF</media:description> + <media:community> + <media:starRating count="13715" average="5.00" min="1" max="5"/> + <media:statistics views="261987"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:dw-z10LNtm0</id> + <yt:videoId>dw-z10LNtm0</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>Can Tor's Problems Be Fixed?</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=dw-z10LNtm0"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-09-18T13:40:36+00:00</published> + <updated>2025-09-20T18:47:22+00:00</updated> + <media:group> + <media:title>Can Tor's Problems Be Fixed?</media:title> + <media:content url="https://www.youtube.com/v/dw-z10LNtm0?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i1.ytimg.com/vi/dw-z10LNtm0/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I show you how to customize Librewolf to browse the Tor network while spoofing your HTTP user agent in a similar way to the old Tor browser. I also show you how to validate the BGP security of guard nodes in your Tor circuit to avoid having your IP address revealed. These modifications are not approved by the Tor project and you use them at your own risk. + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n + +Ethereum +0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079 + +Litecoin +MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF</media:description> + <media:community> + <media:starRating count="3281" average="5.00" min="1" max="5"/> + <media:statistics views="61182"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:QDDkfKPmD8c</id> + <yt:videoId>QDDkfKPmD8c</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>The Tor Project is Ignoring These Issues</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=QDDkfKPmD8c"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-09-11T23:42:07+00:00</published> + <updated>2025-09-20T00:41:12+00:00</updated> + <media:group> + <media:title>The Tor Project is Ignoring These Issues</media:title> + <media:content url="https://www.youtube.com/v/QDDkfKPmD8c?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i2.ytimg.com/vi/QDDkfKPmD8c/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I discuss how the Tor project has been ignoring and or slow to fix major issues in both the Tor browser and network including the weakness to BGP hijacking attacks with the current route selection algorithm, the slow fix of the security slider, and the removal of http header spoofing to make every Tor user look like their on a Windows computer. + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n + +Ethereum +0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079 + +Litecoin +MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF</media:description> + <media:community> + <media:starRating count="5229" average="5.00" min="1" max="5"/> + <media:statistics views="91425"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:janmJ195nic</id> + <yt:videoId>janmJ195nic</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>CachyOS - The Blazingly Fast Linux Distro</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=janmJ195nic"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-09-08T23:59:19+00:00</published> + <updated>2025-09-17T00:39:43+00:00</updated> + <media:group> + <media:title>CachyOS - The Blazingly Fast Linux Distro</media:title> + <media:content url="https://www.youtube.com/v/janmJ195nic?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i3.ytimg.com/vi/janmJ195nic/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I discuss how CachyOS is optimizing the Linux kernel and their packages for performance on an Arch based distribution, similarly to how Clear Linux was optimized to give users well tuned user friendly Linux experience out of the box. + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n + +Ethereum +0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079 + +Litecoin +MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF</media:description> + <media:community> + <media:starRating count="5888" average="5.00" min="1" max="5"/> + <media:statistics views="96733"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:L1S0SiBuJN8</id> + <yt:videoId>L1S0SiBuJN8</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>Google is Locking Down Android</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=L1S0SiBuJN8"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-08-29T00:28:31+00:00</published> + <updated>2025-08-30T03:51:40+00:00</updated> + <media:group> + <media:title>Google is Locking Down Android</media:title> + <media:content url="https://www.youtube.com/v/L1S0SiBuJN8?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i1.ytimg.com/vi/L1S0SiBuJN8/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I discuss how Google is restricting peoples ability to side load applications on their devices, and closing down the once open software ecosystem that was android, making it more similar to Apples "walled garden" + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n + +Ethereum +0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079 + +Litecoin +MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF</media:description> + <media:community> + <media:starRating count="25567" average="5.00" min="1" max="5"/> + <media:statistics views="372366"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:l5TXF5_km2Q</id> + <yt:videoId>l5TXF5_km2Q</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>YouTube's Dystopian AI Features</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=l5TXF5_km2Q"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-08-26T00:28:12+00:00</published> + <updated>2025-09-11T23:51:53+00:00</updated> + <media:group> + <media:title>YouTube's Dystopian AI Features</media:title> + <media:content url="https://www.youtube.com/v/l5TXF5_km2Q?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i1.ytimg.com/vi/l5TXF5_km2Q/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I discuss how YouTube is rolling out a new AI age verification system to de-anonymize users of their platform under the guise of "protecting the children" + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n + +Ethereum +0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079 + +Litecoin +MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF</media:description> + <media:community> + <media:starRating count="5839" average="5.00" min="1" max="5"/> + <media:statistics views="51193"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:mdnbIXArwVk</id> + <yt:videoId>mdnbIXArwVk</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>Run ANY Windows Application On Your Linux Machine</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=mdnbIXArwVk"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-08-22T13:44:21+00:00</published> + <updated>2025-08-24T14:13:42+00:00</updated> + <media:group> + <media:title>Run ANY Windows Application On Your Linux Machine</media:title> + <media:content url="https://www.youtube.com/v/mdnbIXArwVk?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i2.ytimg.com/vi/mdnbIXArwVk/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I show you how to setup WinApps in a docker container so that you can run any Windows application (including office 365 and the adobe suite) through a seamless virtualized interface on a Linux computer. + +Download WinApps here +https://github.com/winapps-org/winapps + + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n + +Ethereum +0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079 + +Litecoin +MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF</media:description> + <media:community> + <media:starRating count="12274" average="5.00" min="1" max="5"/> + <media:statistics views="146445"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:vsx5wL2n1mU</id> + <yt:videoId>vsx5wL2n1mU</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>Identifying Malware in the AUR</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=vsx5wL2n1mU"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-08-07T23:08:43+00:00</published> + <updated>2025-09-11T23:52:20+00:00</updated> + <media:group> + <media:title>Identifying Malware in the AUR</media:title> + <media:content url="https://www.youtube.com/v/vsx5wL2n1mU?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i3.ytimg.com/vi/vsx5wL2n1mU/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I show you how to identify malware in PKGBUILD files within the AUR. + +0:00 Intro +3:38 How AUR PKGBUILD should look +8:00 What AUR malware looks like + + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n + +Ethereum +0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079 + +Litecoin +MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF</media:description> + <media:community> + <media:starRating count="4095" average="5.00" min="1" max="5"/> + <media:statistics views="59934"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:LFDP5Eb2sQI</id> + <yt:videoId>LFDP5Eb2sQI</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>The UK Has Outlawed Online Privacy</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=LFDP5Eb2sQI"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-08-06T23:01:59+00:00</published> + <updated>2025-08-08T04:06:20+00:00</updated> + <media:group> + <media:title>The UK Has Outlawed Online Privacy</media:title> + <media:content url="https://www.youtube.com/v/LFDP5Eb2sQI?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i1.ytimg.com/vi/LFDP5Eb2sQI/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I discuss how the UK is requiring platforms to check the ID's of their users to "protect the children" and platforms are also blocking the use of VPNs and proxies meaning UK users who want to consume content will be required to identify themselves first + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n + +Ethereum +0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079 + +Litecoin +MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF</media:description> + <media:community> + <media:starRating count="12863" average="5.00" min="1" max="5"/> + <media:statistics views="149073"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:l_oRYVhIE7c</id> + <yt:videoId>l_oRYVhIE7c</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>Can a TikTok Inventor Beat Big Oil With "Plastic Gasoline"?</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=l_oRYVhIE7c"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-08-05T10:55:46+00:00</published> + <updated>2025-08-20T13:32:04+00:00</updated> + <media:group> + <media:title>Can a TikTok Inventor Beat Big Oil With "Plastic Gasoline"?</media:title> + <media:content url="https://www.youtube.com/v/l_oRYVhIE7c?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i1.ytimg.com/vi/l_oRYVhIE7c/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I give my thoughts on Julian Brown's (AKA NatureJab) method of turning plastic waste into usable fuel and whether or not I think it's an economically and environmentally viable method that big oil would conspire to suppress. + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qyj5p6hzqkautq4d3zgzwfllm7xv9wjeqkv857z + +Ethereum +0x35B505EB5b717D11c28D163fb1412C3344c7684d + +Litecoin +LQviuYVbvJs1jCSiEDwWAarycA4xsqJo7D + +DOGE +D7MPGcUT4sXkGroGbs4QVQGyXqXd6QfmXF</media:description> + <media:community> + <media:starRating count="6249" average="5.00" min="1" max="5"/> + <media:statistics views="105103"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:esTWbyEqDWk</id> + <yt:videoId>esTWbyEqDWk</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>Lovense Had Vulnerabilities That Leaked User Data</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=esTWbyEqDWk"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-08-01T22:50:28+00:00</published> + <updated>2025-08-05T10:39:55+00:00</updated> + <media:group> + <media:title>Lovense Had Vulnerabilities That Leaked User Data</media:title> + <media:content url="https://www.youtube.com/v/esTWbyEqDWk?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i2.ytimg.com/vi/esTWbyEqDWk/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I discuss how the adult toy company Lovense lied about a serious security vulnerability that could allow hackers to doxx Lovense users and remotely control their toys. Read more about this on BobDaHackers Blog +https://bobdahacker.com/blog/lovense-still-leaking-user-emails + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 Bitcoin +bc1qyj5p6hzqkautq4d3zgzwfllm7xv9wjeqkv857z + +Ethereum +0x35B505EB5b717D11c28D163fb1412C3344c7684d + +Litecoin +LQviuYVbvJs1jCSiEDwWAarycA4xsqJo7D + +DOGE +D7MPGcUT4sXkGroGbs4QVQGyXqXd6QfmXF</media:description> + <media:community> + <media:starRating count="4146" average="5.00" min="1" max="5"/> + <media:statistics views="63107"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:bVes3ZbWTf8</id> + <yt:videoId>bVes3ZbWTf8</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>The McDonald's AI Security Breach</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=bVes3ZbWTf8"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-07-28T15:50:03+00:00</published> + <updated>2025-08-05T10:45:48+00:00</updated> + <media:group> + <media:title>The McDonald's AI Security Breach</media:title> + <media:content url="https://www.youtube.com/v/bVes3ZbWTf8?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i3.ytimg.com/vi/bVes3ZbWTf8/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I discuss how mchire.com (The online job application service for McDonald's, powered by Paradox AI) was hacked through an insecure testing account that allowed security researchers to access the personal data of more than 64 million McDonald's job applicants. + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 + +Bitcoin +bc1qyj5p6hzqkautq4d3zgzwfllm7xv9wjeqkv857z + +Ethereum +0x35B505EB5b717D11c28D163fb1412C3344c7684d + +Litecoin +LQviuYVbvJs1jCSiEDwWAarycA4xsqJo7D + +DOGE +D7MPGcUT4sXkGroGbs4QVQGyXqXd6QfmXF</media:description> + <media:community> + <media:starRating count="5735" average="5.00" min="1" max="5"/> + <media:statistics views="113079"/> + </media:community> + </media:group> + </entry> + <entry> + <id>yt:video:Rpl3-8F6RPU</id> + <yt:videoId>Rpl3-8F6RPU</yt:videoId> + <yt:channelId>UC7YOGHUfC1Tb6E4pudI9STA</yt:channelId> + <title>Linux Malware... Coming to a Desktop Near you!</title> + <link rel="alternate" href="https://www.youtube.com/watch?v=Rpl3-8F6RPU"/> + <author> + <name>Mental Outlaw</name> + <uri>https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA</uri> + </author> + <published>2025-07-26T01:07:08+00:00</published> + <updated>2025-08-05T10:39:51+00:00</updated> + <media:group> + <media:title>Linux Malware... Coming to a Desktop Near you!</media:title> + <media:content url="https://www.youtube.com/v/Rpl3-8F6RPU?version=3" type="application/x-shockwave-flash" width="640" height="390"/> + <media:thumbnail url="https://i3.ytimg.com/vi/Rpl3-8F6RPU/hqdefault.jpg" width="480" height="360"/> + <media:description>In this video I discuss how the rising popularity of Linux may lead to more malware campaigns in open source repositories (like the one that took place last week in the AUR) and how the community can protect itself from these kinds of attacks. + +My merch is available at +https://based.win/ + +Subscribe to me on Odysee.com +https://odysee.com/@AlphaNerd:8 + +₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿ + +Monero +45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436 Bitcoin +bc1qyj5p6hzqkautq4d3zgzwfllm7xv9wjeqkv857z + +Ethereum +0x35B505EB5b717D11c28D163fb1412C3344c7684d + +Litecoin +LQviuYVbvJs1jCSiEDwWAarycA4xsqJo7D + +DOGE +D7MPGcUT4sXkGroGbs4QVQGyXqXd6QfmXF</media:description> + <media:community> + <media:starRating count="7351" average="5.00" min="1" max="5"/> + <media:statistics views="158244"/> + </media:community> + </media:group> + </entry> +</feed> |
