Comments (5)
Oh, jeez...
Oh, yes yes, you are very welcome here! I just really didn't ever expect this simple script to grow to any size like that...
plans to bring some high level unit test structure into place
I may repeat myself like 3rd time in those comments, but this script is really shitty to be honest. If I would write it righ now, nowing exactly what folder structure/edge cases there are, and how many people will use it, I would do this differently:
- for now, it kinda "walks through" the files and does stuff with them
- what I would do, is to generate some data strucutres from all input files and data, and then play with it
Tests? Yeah, we could write some of those 👍 Righ now, I'm just in the middle of writing a GitHub action that runs the script 30 times on sample folder and measures the time. Perhaps some way to quickly test individual functions, like find_json_for_file
.
my takeout contains many edge cases
Could you name some? I already have a routine of "people give me their weird photos, I tell them to send me a donation add it in some PR. Maybe the last time you checked it was some old version - we have a lot of improvments now that protect from edge cases 🚀
I'd be super happy to contribute
You can wait till I merge those #62 and #63 and maybe I will add some documenation after that
I need to stop lying to myself that this project is done and finished, because it never will be xD - I will add some contributing.mg
also
from googlephotostakeouthelper.
Yes, you can now watch me have fun at #66
from googlephotostakeouthelper.
Perhaps some way to quickly test individual functions, like
find_json_for_file
.
Fine grained tests on a function level would "manifest" the current structure and get in the way of refactorings like the data structure one you mentioned.
I already have a routine of "people give me their weird photos
Correct me if I'm wrong, but we actually only need file names, not the actual contents, right? Or do we also sometimes need the JSON file contents? (to be honest I haven't read the code in detail yet)
I need to stop lying to myself that this project is done and finished, because it never will be xD
I guess that's a given with Google as a moving target on the other side ^^
I'll try to find time this week to open a draft PR to sketch out a first basic test setup proposal.
from googlephotostakeouthelper.
we actually only need file names
Oh no no no, we use everything to get right photo data
I will make some general "what this script does" description in contributing.md
- I can ping you when I'm done, so you won't waste your patiance reverse-engineering code
first basic test setup proposal
Currently, everything is like:
def main():
varib = 0
def other_fun(): # Functions inside main() function
nonlocal varib # Ton of global variables <3
So I don't know whtether that's really test-able, but I started to think about some general tests that would go like:
- take folder with pngs (they don't have exifs), but with jsons
- assert that they have correct dates
- take folder with photos which' locations were edited in Google Photos editor
- assert that their output exifs have this location
- etc
If you want to help:
- Drop me your edge-case photos - maybe we can do something with them 👍
- Also you can give me some exaple photos with stuff to assert - weird formats, stuff where you edited location, duplicates etc
from googlephotostakeouthelper.
Oh no no no, we use everything to get right photo data
Everything being EXIF, the file JSON, the folder/album JSON aaand..? (btw, potential last resort fallback: the filename). The point I'm getting at is that we probably don't need the actual image data, like "the pixels". At least I, and I can imagine more people, will be more comfortable sharing their photos which will eventually be hosted in this repo if they don't contain any more potential private information than the filename, EXIF data and the JSON metadata (which could also be cleaned manually if necessary).
So I don't know whtether that's really test-able, but I started to think about some general tests that would go like:
Yep, that's pretty much what I had in mind. See #68
If you want to help:
- Drop me your edge-case photos - maybe we can do something with them 👍
- Also you can give me some exaple photos with stuff to assert - weird formats, stuff where you edited location, duplicates etc
Will do in #68 👍
from googlephotostakeouthelper.
Related Issues (20)
- .exe detected as virus on VirusTotal HOT 2
- Linux Mint: Program runnning but not moving files HOT 2
- README.MD suggestion: running -AllDates<FileModifyDate might not always be safe HOT 1
- Virustotal analysis: 5 vendors indicate that windows version has trojan HOT 1
- Can't find anything in input foler HOT 10
- Cannot Access Other Drives In My PC HOT 1
- i have done all steps but at the last step of file conversion there is an error, error: unrecognized arguments , idk how to move further help me. i have pasted the entire line of error help me in solving it HOT 1
- enhancement request to include another pattern
- I couldn't find any D: reasons for this may be: HOT 8
- Add Apple Silicon builds HOT 2
- Is this project needed for re-uploading to Google Photos? HOT 4
- All Dates are Today HOT 2
- Date Created v/s Date Modified HOT 4
- Unhandled exception: (OS Error: Cross-device link, errno = 18) HOT 3
- PowerShell doesnt work :( - report that to @TheLastGimbus on GitHub HOT 1
- Unable to Run - GPTH Quitted Code 13 HOT 10
- Files dated 1957-1969?
- Request to prepend files with original dates HOT 1
- use localFolderName HOT 1
- Gets stuck on finding duplicates HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from googlephotostakeouthelper.