There have been multiple accounts created with the sole purpose of posting advertisement posts or replies containing unsolicited advertising.

Accounts which solely post advertisements, or persistently post them may be terminated.

I asked Perplexity AI to help, but it wrote a virus instead

SO, it started quite nicely with a fully working program. However nearing the end… or at the end of my programming experience or asking it to program something for me, it wrote in some nasty nasty screen flickering shit. I couldn’t stop it and it quickly just froze my screen where the only option was to push the button. I tried it a second time to confirm, but this time I was able to quickly go to a different CLI window and kill that sonobabich. Here is what it came up with in case you want to try it. maybe it only screws up my computer:


<span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">os
</span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">cv2
</span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">numpy </span><span style="font-weight:bold;color:#a71d5d;">as </span><span style="color:#323232;">np
</span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">time
</span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">tkinter </span><span style="font-weight:bold;color:#a71d5d;">as </span><span style="color:#323232;">tk
</span><span style="font-weight:bold;color:#a71d5d;">from </span><span style="color:#323232;">tkinter </span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">messagebox, filedialog
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">threshold_to_black</span><span style="color:#323232;">(image_path, duration):
</span><span style="color:#323232;">    original_image </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">cv2.imread(image_path)
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">original_image </span><span style="font-weight:bold;color:#a71d5d;">is </span><span style="color:#0086b3;">None</span><span style="color:#323232;">:
</span><span style="color:#323232;">        </span><span style="color:#62a35c;">print</span><span style="color:#323232;">(</span><span style="color:#183691;">"Error: Could not read the image."</span><span style="color:#323232;">)
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">return
</span><span style="color:#323232;">
</span><span style="color:#323232;">    height, width, _ </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">original_image.shape
</span><span style="color:#323232;">    gray_image </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY)
</span><span style="color:#323232;">    steps </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">duration </span><span style="font-weight:bold;color:#a71d5d;">* </span><span style="color:#0086b3;">10  </span><span style="font-style:italic;color:#969896;"># 10 frames per second
</span><span style="color:#323232;">
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">for </span><span style="color:#323232;">i </span><span style="font-weight:bold;color:#a71d5d;">in </span><span style="color:#62a35c;">range</span><span style="color:#323232;">(steps </span><span style="font-weight:bold;color:#a71d5d;">+ </span><span style="color:#0086b3;">1</span><span style="color:#323232;">):
</span><span style="color:#323232;">        </span><span style="font-style:italic;color:#969896;"># Calculate the threshold value (0 to 255)
</span><span style="color:#323232;">        threshold </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#0086b3;">int</span><span style="color:#323232;">((i </span><span style="font-weight:bold;color:#a71d5d;">/ </span><span style="color:#323232;">steps) </span><span style="font-weight:bold;color:#a71d5d;">* </span><span style="color:#0086b3;">255</span><span style="color:#323232;">)
</span><span style="color:#323232;">        
</span><span style="color:#323232;">        </span><span style="font-style:italic;color:#969896;"># Create the thresholded image
</span><span style="color:#323232;">        thresholded_image </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">np.where(gray_image </span><span style="font-weight:bold;color:#a71d5d;">< </span><span style="color:#323232;">threshold, </span><span style="color:#0086b3;">0</span><span style="color:#323232;">, </span><span style="color:#0086b3;">255</span><span style="color:#323232;">).astype(np.uint8)
</span><span style="color:#323232;">
</span><span style="color:#323232;">        </span><span style="font-style:italic;color:#969896;"># Resize the thresholded image to fill the window
</span><span style="color:#323232;">        resized_image </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">cv2.resize(thresholded_image, (window_width, window_height), interpolation</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;">cv2.</span><span style="color:#0086b3;">INTER_LINEAR</span><span style="color:#323232;">)
</span><span style="color:#323232;">
</span><span style="color:#323232;">        </span><span style="font-style:italic;color:#969896;"># Display the thresholded image
</span><span style="color:#323232;">        cv2.imshow(window_name, resized_image)
</span><span style="color:#323232;">
</span><span style="color:#323232;">        </span><span style="font-style:italic;color:#969896;"># Wait for a short period to create the effect
</span><span style="color:#323232;">        time.sleep(</span><span style="color:#0086b3;">0.1</span><span style="color:#323232;">)
</span><span style="color:#323232;">
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">cv2.waitKey(</span><span style="color:#0086b3;">1</span><span style="color:#323232;">) </span><span style="font-weight:bold;color:#a71d5d;">& </span><span style="color:#0086b3;">0xFF </span><span style="font-weight:bold;color:#a71d5d;">== </span><span style="color:#62a35c;">ord</span><span style="color:#323232;">(</span><span style="color:#183691;">'q'</span><span style="color:#323232;">):
</span><span style="color:#323232;">            </span><span style="font-weight:bold;color:#a71d5d;">break
</span><span style="color:#323232;">
</span><span style="color:#323232;">    </span><span style="font-style:italic;color:#969896;"># Display the final black image
</span><span style="color:#323232;">    cv2.imshow(window_name, np.zeros_like(thresholded_image))
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">while </span><span style="color:#0086b3;">True</span><span style="color:#323232;">:
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">cv2.waitKey(</span><span style="color:#0086b3;">1</span><span style="color:#323232;">) </span><span style="font-weight:bold;color:#a71d5d;">& </span><span style="color:#0086b3;">0xFF </span><span style="font-weight:bold;color:#a71d5d;">== </span><span style="color:#62a35c;">ord</span><span style="color:#323232;">(</span><span style="color:#183691;">'q'</span><span style="color:#323232;">):
</span><span style="color:#323232;">            </span><span style="font-weight:bold;color:#a71d5d;">break
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    cv2.destroyAllWindows()
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">select_image</span><span style="color:#323232;">():
</span><span style="color:#323232;">    current_directory </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">os.getcwd()  </span><span style="font-style:italic;color:#969896;"># Get the current directory
</span><span style="color:#323232;">    filetypes </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">(
</span><span style="color:#323232;">        (</span><span style="color:#183691;">'JPEG files'</span><span style="color:#323232;">, </span><span style="color:#183691;">'*.jpg'</span><span style="color:#323232;">),
</span><span style="color:#323232;">        (</span><span style="color:#183691;">'JPEG files'</span><span style="color:#323232;">, </span><span style="color:#183691;">'*.jpeg'</span><span style="color:#323232;">),
</span><span style="color:#323232;">        (</span><span style="color:#183691;">'All files'</span><span style="color:#323232;">, </span><span style="color:#183691;">'*.*'</span><span style="color:#323232;">)
</span><span style="color:#323232;">    )
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    filename </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">filedialog.askopenfilename(
</span><span style="color:#323232;">        title</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#183691;">'Select an Image'</span><span style="color:#323232;">,
</span><span style="color:#323232;">        initialdir</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;">current_directory,  </span><span style="font-style:italic;color:#969896;"># Start in the current directory
</span><span style="color:#323232;">        filetypes</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;">filetypes
</span><span style="color:#323232;">    )
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">filename:
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#323232;">filename
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">else</span><span style="color:#323232;">:
</span><span style="color:#323232;">        messagebox.showerror(</span><span style="color:#183691;">"Error"</span><span style="color:#323232;">, </span><span style="color:#183691;">"No image selected."</span><span style="color:#323232;">)
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#0086b3;">None
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">get_duration</span><span style="color:#323232;">():
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">submit</span><span style="color:#323232;">():
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">nonlocal </span><span style="color:#323232;">total_duration
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">try</span><span style="color:#323232;">:
</span><span style="color:#323232;">            minutes </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#0086b3;">int</span><span style="color:#323232;">(minutes_entry.get())
</span><span style="color:#323232;">            seconds </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#0086b3;">int</span><span style="color:#323232;">(seconds_entry.get())
</span><span style="color:#323232;">            total_duration </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">minutes </span><span style="font-weight:bold;color:#a71d5d;">* </span><span style="color:#0086b3;">60 </span><span style="font-weight:bold;color:#a71d5d;">+ </span><span style="color:#323232;">seconds
</span><span style="color:#323232;">            </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">total_duration </span><span style="font-weight:bold;color:#a71d5d;">> </span><span style="color:#0086b3;">0</span><span style="color:#323232;">:
</span><span style="color:#323232;">                duration_window.destroy()
</span><span style="color:#323232;">            </span><span style="font-weight:bold;color:#a71d5d;">else</span><span style="color:#323232;">:
</span><span style="color:#323232;">                messagebox.showerror(</span><span style="color:#183691;">"Error"</span><span style="color:#323232;">, </span><span style="color:#183691;">"Duration must be greater than zero."</span><span style="color:#323232;">)
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">except </span><span style="color:#0086b3;">ValueError</span><span style="color:#323232;">:
</span><span style="color:#323232;">            messagebox.showerror(</span><span style="color:#183691;">"Error"</span><span style="color:#323232;">, </span><span style="color:#183691;">"Please enter valid integers."</span><span style="color:#323232;">)
</span><span style="color:#323232;">
</span><span style="color:#323232;">    total_duration </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#0086b3;">None
</span><span style="color:#323232;">    duration_window </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">tk.Toplevel()
</span><span style="color:#323232;">    duration_window.title(</span><span style="color:#183691;">"Input Duration"</span><span style="color:#323232;">)
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    tk.Label(duration_window, text</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#183691;">"Enter duration:"</span><span style="color:#323232;">).grid(row</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">0</span><span style="color:#323232;">, columnspan</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">2</span><span style="color:#323232;">)
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    tk.Label(duration_window, text</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#183691;">"Minutes:"</span><span style="color:#323232;">).grid(row</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">1</span><span style="color:#323232;">, column</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">0</span><span style="color:#323232;">)
</span><span style="color:#323232;">    minutes_entry </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">tk.Entry(duration_window)
</span><span style="color:#323232;">    minutes_entry.grid(row</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">1</span><span style="color:#323232;">, column</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">1</span><span style="color:#323232;">)
</span><span style="color:#323232;">    minutes_entry.insert(</span><span style="color:#0086b3;">0</span><span style="color:#323232;">, </span><span style="color:#183691;">"12"</span><span style="color:#323232;">)  </span><span style="font-style:italic;color:#969896;"># Set default value for minutes
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    tk.Label(duration_window, text</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#183691;">"Seconds:"</span><span style="color:#323232;">).grid(row</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">2</span><span style="color:#323232;">, column</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">0</span><span style="color:#323232;">)
</span><span style="color:#323232;">    seconds_entry </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">tk.Entry(duration_window)
</span><span style="color:#323232;">    seconds_entry.grid(row</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">2</span><span style="color:#323232;">, column</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">1</span><span style="color:#323232;">)
</span><span style="color:#323232;">    seconds_entry.insert(</span><span style="color:#0086b3;">0</span><span style="color:#323232;">, </span><span style="color:#183691;">"2"</span><span style="color:#323232;">)  </span><span style="font-style:italic;color:#969896;"># Set default value for seconds
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    tk.Button(duration_window, text</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#183691;">"Submit"</span><span style="color:#323232;">, command</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;">submit).grid(row</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">3</span><span style="color:#323232;">, columnspan</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#0086b3;">2</span><span style="color:#323232;">)
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    </span><span style="font-style:italic;color:#969896;"># Center the duration window on the screen
</span><span style="color:#323232;">    duration_window.update_idletasks()  </span><span style="font-style:italic;color:#969896;"># Update "requested size" from geometry manager
</span><span style="color:#323232;">    width </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">duration_window.winfo_width()
</span><span style="color:#323232;">    height </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">duration_window.winfo_height()
</span><span style="color:#323232;">    x </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">(duration_window.winfo_screenwidth() </span><span style="font-weight:bold;color:#a71d5d;">// </span><span style="color:#0086b3;">2</span><span style="color:#323232;">) </span><span style="font-weight:bold;color:#a71d5d;">- </span><span style="color:#323232;">(width </span><span style="font-weight:bold;color:#a71d5d;">// </span><span style="color:#0086b3;">2</span><span style="color:#323232;">)
</span><span style="color:#323232;">    y </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">(duration_window.winfo_screenheight() </span><span style="font-weight:bold;color:#a71d5d;">// </span><span style="color:#0086b3;">2</span><span style="color:#323232;">) </span><span style="font-weight:bold;color:#a71d5d;">- </span><span style="color:#323232;">(height </span><span style="font-weight:bold;color:#a71d5d;">// </span><span style="color:#0086b3;">2</span><span style="color:#323232;">)
</span><span style="color:#323232;">    duration_window.geometry(</span><span style="font-weight:bold;color:#a71d5d;">f</span><span style="color:#183691;">'</span><span style="color:#323232;">{width}</span><span style="color:#183691;">x</span><span style="color:#323232;">{height}</span><span style="color:#183691;">+</span><span style="color:#323232;">{x}</span><span style="color:#183691;">+</span><span style="color:#323232;">{y}</span><span style="color:#183691;">'</span><span style="color:#323232;">)
</span><span style="color:#323232;">
</span><span style="color:#323232;">    duration_window.transient()  </span><span style="font-style:italic;color:#969896;"># Make the duration window modal
</span><span style="color:#323232;">    duration_window.grab_set()    </span><span style="font-style:italic;color:#969896;"># Prevent interaction with the main window
</span><span style="color:#323232;">    duration_window.wait_window()  </span><span style="font-style:italic;color:#969896;"># Wait for the duration window to close
</span><span style="color:#323232;">
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#323232;">total_duration
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">wait_for_start</span><span style="color:#323232;">(image_path):
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">global </span><span style="color:#323232;">window_name, window_width, window_height
</span><span style="color:#323232;">
</span><span style="color:#323232;">    original_image </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">cv2.imread(image_path)
</span><span style="color:#323232;">    height, width, _ </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">original_image.shape
</span><span style="color:#323232;">
</span><span style="color:#323232;">    window_name </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#183691;">'Threshold to Black'
</span><span style="color:#323232;">    cv2.namedWindow(window_name, cv2.</span><span style="color:#0086b3;">WINDOW_NORMAL</span><span style="color:#323232;">)
</span><span style="color:#323232;">    cv2.resizeWindow(window_name, width, height)
</span><span style="color:#323232;">    cv2.imshow(window_name, np.zeros((height, width, </span><span style="color:#0086b3;">3</span><span style="color:#323232;">), dtype</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;">np.uint8))  </span><span style="font-style:italic;color:#969896;"># Black window
</span><span style="color:#323232;">    </span><span style="color:#62a35c;">print</span><span style="color:#323232;">(</span><span style="color:#183691;">"Press 's' to start the threshold effect. Press 'F11' to toggle full screen."</span><span style="color:#323232;">)
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">while </span><span style="color:#0086b3;">True</span><span style="color:#323232;">:
</span><span style="color:#323232;">        key </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">cv2.waitKey(</span><span style="color:#0086b3;">1</span><span style="color:#323232;">) </span><span style="font-weight:bold;color:#a71d5d;">& </span><span style="color:#0086b3;">0xFF
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">key </span><span style="font-weight:bold;color:#a71d5d;">== </span><span style="color:#62a35c;">ord</span><span style="color:#323232;">(</span><span style="color:#183691;">'s'</span><span style="color:#323232;">):
</span><span style="color:#323232;">            </span><span style="font-weight:bold;color:#a71d5d;">break
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">elif </span><span style="color:#323232;">key </span><span style="font-weight:bold;color:#a71d5d;">== </span><span style="color:#0086b3;">255</span><span style="color:#323232;">:  </span><span style="font-style:italic;color:#969896;"># F11 key
</span><span style="color:#323232;">            toggle_fullscreen()
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">toggle_fullscreen</span><span style="color:#323232;">():
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">global </span><span style="color:#323232;">window_name
</span><span style="color:#323232;">    fullscreen </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">cv2.getWindowProperty(window_name, cv2.</span><span style="color:#0086b3;">WND_PROP_FULLSCREEN</span><span style="color:#323232;">)
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">fullscreen </span><span style="font-weight:bold;color:#a71d5d;">== </span><span style="color:#323232;">cv2.</span><span style="color:#0086b3;">WINDOW_FULLSCREEN</span><span style="color:#323232;">:
</span><span style="color:#323232;">        cv2.setWindowProperty(window_name, cv2.</span><span style="color:#0086b3;">WND_PROP_FULLSCREEN</span><span style="color:#323232;">, cv2.</span><span style="color:#0086b3;">WINDOW_NORMAL</span><span style="color:#323232;">)
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">else</span><span style="color:#323232;">:
</span><span style="color:#323232;">        cv2.setWindowProperty(window_name, cv2.</span><span style="color:#0086b3;">WND_PROP_FULLSCREEN</span><span style="color:#323232;">, cv2.</span><span style="color:#0086b3;">WINDOW_FULLSCREEN</span><span style="color:#323232;">)
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">__name__ </span><span style="font-weight:bold;color:#a71d5d;">== </span><span style="color:#183691;">"__main__"</span><span style="color:#323232;">:
</span><span style="color:#323232;">    current_directory </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">os.getcwd()
</span><span style="color:#323232;">    jpeg_files </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">[f </span><span style="font-weight:bold;color:#a71d5d;">for </span><span style="color:#323232;">f </span><span style="font-weight:bold;color:#a71d5d;">in </span><span style="color:#323232;">os.listdir(current_directory) </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">f.lower().endswith((</span><span style="color:#183691;">'.jpeg'</span><span style="color:#323232;">, </span><span style="color:#183691;">'.jpg'</span><span style="color:#323232;">))]
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">jpeg_files:
</span><span style="color:#323232;">        image_path </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">select_image()
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">image_path </span><span style="font-weight:bold;color:#a71d5d;">is </span><span style="color:#0086b3;">None</span><span style="color:#323232;">:
</span><span style="color:#323232;">            </span><span style="color:#62a35c;">print</span><span style="color:#323232;">(</span><span style="color:#183691;">"No image selected. Exiting."</span><span style="color:#323232;">)
</span><span style="color:#323232;">            exit()
</span><span style="color:#323232;">
</span><span style="color:#323232;">        duration </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">get_duration()
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">duration </span><span style="font-weight:bold;color:#a71d5d;">is </span><span style="color:#0086b3;">None</span><span style="color:#323232;">:
</span><span style="color:#323232;">            </span><span style="color:#62a35c;">print</span><span style="color:#323232;">(</span><span style="color:#183691;">"No valid duration entered. Exiting."</span><span style="color:#323232;">)
</span><span style="color:#323232;">            exit()
</span><span style="color:#323232;">
</span><span style="color:#323232;">        wait_for_start(image_path)
</span><span style="color:#323232;">
</span><span style="color:#323232;">        </span><span style="font-style:italic;color:#969896;"># Get the original
</span>
Asetru ,

I once heard a cook say that cooks who use salt mills aren’t cooks.

I’m really tempted to say the same thing about programmers that use llms to code.

sndmn ,

PEBKAC

Deceptichum ,
@Deceptichum@quokk.au avatar

I knew my clothes were the issue.

NeoNachtwaechter ,

You don’t need AI. Take some basic programming courses.

quixotic120 ,

that’s not what a virus is

werefreeatlast OP ,

If you download it and accidentally run it. I think you would think otherwise. A virus is any malicious code. It doesn’t have to be made with a special virus API. Literally you can make viruses that only run on Microsoft Excel.

But AI is helping level that field.

quixotic120 ,

a virus perpetuates and replicates itself infecting other executables with its code, thus the name “virus”.

this is just shitty code that crashes hard. it’s not even particularly malicious, it doesn’t destroy anything

werefreeatlast OP ,

Okay 👍 you are right.

Curious_Canid ,
@Curious_Canid@lemmy.ca avatar

This could be considered a trojan.

Asetru ,

It doesn’t give anyone access to your system or forward information from your system to outsiders, so no.

werefreeatlast OP ,

LOL, I asked Chat-GPT to fix it and it couldn’t do it. It gave me code that also crashed my computer within a few seconds. In couldn’t even go to Ctrl alt F4 for example.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • [email protected]
  • random
  • lifeLocal
  • goranko
  • All magazines