Giter Club home page Giter Club logo

corbindavenport / imageshare Goto Github PK

View Code? Open in Web Editor NEW
79.0 79.0 4.0 9.83 MB

A lightweight web app for uploading images, created for the Nintendo 3DS and other legacy web browsers.

Home Page: https://theimageshare.com

License: GNU General Public License v3.0

PHP 89.41% CSS 9.44% Dockerfile 1.15%
3ds 3ds-homebrew heroku image image-upload image-uploader imgur nintendo-3ds nintendo-3ds-homebrew nintendo-wii-u nintendo-wiiu webapp wii-u wii-u-homebrew wiiu wiiu-homebrew

imageshare's Introduction

imageshare's People

Contributors

corbindavenport avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

imageshare's Issues

Design improvements

The uploader should display two QR codes (one for the Imgur link, one for the direct image), with tabs or some other method to switch between them. Also, direct links to both that open in a new browser window/tab.

Ideally, everything should be visible on the lower screen only on the 3DS, which would also be a good test platform for other devices with small screens.

Bug when uploading iPhone photo

[image-share] [2022-09-02 19:26:01] [02-Sep-2022 19:26:00 UTC] PHP Fatal error:  Uncaught ValueError: Path cannot be empty in /workspace/web/index.php:72

Update app UI

There should be a note somewhere that you can bookmark the page for easy access. Maybe turn the text information into a JavaScript alert so it can be scrolled through easily on small screens.

Converting images

I was using ImageShare with an older Mac, where screenshots and other images were stored as .PICT files, so ImageShare/Imgur didn't recognize them. Maybe there can be some server-side file conversion.

Heroku migration

Heroku is shutting down free dynos starting November 28, 2022, which is what ImageShare runs on: https://help.heroku.com/RSBRUH58/removal-of-heroku-free-product-plans-faq

I can't really justify $7/mo for ImageShare by itself, given I only use it infrequently myself and there aren't any donations coming in. It either needs to move to another host, or be rewritten as client-side JavaScript. I also can't redirect the current URL once I switch hosts after Nov 28, which is a problem. Vercel may be an alternative.

I'll post any updates on the situation here, and on the Discord server.

Improve larger image file support

ImageShare doesn't have a defined upload size limit, and silently fails with some larger files. The error handling needs to be improved and there should be a clearly-stated maximum upload size (either one that fits both upload API options or a per-option size).

Create website

This should be hosted on the web branch. It might be best to use Bootstrap for the UI.

Home page:

  • Basic explainer
  • SEO to the max
  • Install instructions for various consoles (maybe tabs/accordions if Bootstrap is used?)
  • Donate links

Image viewer page

  • QR codes will load this page with the image as a parameter (e.g. view.html?url=img.jpg) instead of the image itself
  • Two primary buttons, download (which forces download) and share (uses Web Share API if supported)
  • Additional buttons for uploading to cloud services from the URL (Dropbox and Google Drive have buttons that accept URL as input, probably others too)
  • Explains that links expire after five minutes
  • Search engine no-follow
  • Donate links

Rendering issues on Safari 2.0

The QR code is stretched out on Safari 2.0 on Mac OS X 10.4, and it's also not using the desktop view with two columns. This might require using hardcoded pixel width values as the base CSS, with overrides in the media queries.

B51CD526-33B6-41EC-BB15-95F5269228DD

Email send support

Not sure how easy this would be to set up, but it would be neat to have a text field for entering an email address, which the image would be sent to when the upload is complete. QR should remain the default setting.

Doesn't work on 3DS anymore?

As the title says. I tried to use ImageShare on a 3DS, but i was greeted with error code 032-1035 for some reason.
photo_2022-10-26_11-47-26

Video support

The Imgur API supports video uploads, so ImageShare could theoretically support them too.

Analytics reporting is broken on 3DS

The script for Plausible Analytics doesn't seem to work on the New 3DS Browser, even using the compat script intended for Internet Explorer, and Plausible doesn't have a tracking pixel option like Google Analytics did.

There are a few options for fixing:

  1. Creating custom lightweight JavaScript code that reports data with the events API.
  2. Reporting analytics data server-side with PHP.

Add support for old 3DS

Report from old 3DS: "QR was on the top screen, but the upload page is like 25% on top 75% on bottom"

Replace QR Code API

To reduce issues relating to user privacy, it would be ideal to add support or implement the use of a self-hosted/local piece of code, to generate QR codes of image URLs.

PHPQRCode seems to be a viable PHP based project for this kind of work, however I imagine it stores the image locally. I guess a solution to that would be exporting the generated image as a set of base64 text the browser would present? Can the 3DS Browser even accept that kind of data?

There are some other QR generating alternatives, but I haven't found one (in a quick search) that doesn't require payment or an account on someone's end.

Thank you for the code and service!

ImageShare is unable to upload to Imgur API

The production version of ImageShare is currently unable to upload images to Imgur, because the API returns this error:

string(109) "{"data":{"error":"Imgur is temporarily over capacity. Please try again later."},"success":false,"status":403}"

My local setup with the same Docker container and same API key still works, so I assume this is a (hopefully unintentional) IP block. I've updated the upload code to use binary files instead of base64-encoded images, and tried moving the server to a different DigitalOcean region, but nothing changed there. I also rolled out basic error handling, so ImageShare won't silently fail when an upload fails (which was generating a QR code that linked to the Imgur home page).

This shouldn't be related to Imgur's terms of service change:

There are no planned upcoming changes to Imgur’s API offerings. With this update, we are focused on the content that is uploaded to Imgur, not how the content is uploaded to Imgur

I'll update this thread as I investigate other solutions.

[Suggestion] Replacing imgur with another Imagehost

Imgur recently announced their plans to delete "old, unused, and inactive content". In this case, uploading images using Imageshare to Imgur longer term may not be a good idea, as that content could in theory be lost later on down.

It seems the code is simple enough to switch to another API, but I don't want to recommend any specific one; this is more of a notice than an actual "issue", especially if users consider the images sent to imageshare as ephemeral.

Thank you for this service and code!

Update Plausible code

The active domain for Plausible should be moved to an environment variable, and leaving the variable blank/not setting the variable should turn off the analytics code. This would prevent custom installs of ImageShare from reporting analytics to the main Plausible dashboard, but leave it as an option for anyone who wants to set that up. The dev documentation can also be updated to explain how to do that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.