Code Monkey home page Code Monkey logo

snapchat-fs's Introduction

Introduction

Since Snapchat imposes few restrictions on what data can be uploaded (i.e., not just images), I've taken to using it as a system to send files to myself and others.

Snapchat FS is the tool that allows this. It provides a simple command line interface for uploading arbitrary files into Snapchat, managing them, and downloading them to any other computer with access to this package.

Uploading the file is simple:

$ sfs upload some_file.pdf
Uploading file some_file.pdf

Downloading is just as simple:

$ sfs download directory_to_put_files
Downloading snap file.txt
Downloading snap file.txt but filename is not unique; downloading as: file.txt-1a55ff534e03d25b5a489da83c2ae32ad9bc70fc6e07df4e7b0e82f028cb531f

Snapchat FS supports some other features, such as listing the files currently maintained in Snapchat using the Snapchat FS utility:

$ sfs list
Filename      Content hash
some_file.pdf fc7f9f7fd935c8f34...7df
cow.mov       1a55ff534e03d25b5...31f

Features

  • Uploading files via command line
  • Downloading all the files all at once to an arbitrary file
  • Downloading one file at a time
  • Deleting files from Snapchat's server using the command line (to delete it you must "view" it in the app)
  • Encrypting data with something other than the Snapchat default
  • FUSE integration (yes yes I know I know)

Configuration

sfs will boot up and look for the file ~/.snapchat_fs, which is a config file that we will use to store things like username and password. If it doesn't find the file, it will prompt you for your username and password. After you enter these things, it will create the config file and populate it with this information (NOTE: password is in PLAINTEXT).

This looks something like so:

Looks like you haven't used Snapchat FS before.
We're going to ask for a username and a password; you can
change these later by messing with the file /Users/alex/.snapchat_fs
Please enter a username:
bobby_murphy
Please enter your password (NOTE: STORED IN PLAINTEXT):

The sfs config file will then look something like this:

USERNAME=bobby_murphy
PASSWORD=iheartsnapchat

To add more to this config file, all you need to do is follow that format. Currently sfs is feature-sparse, so the only settings only include USERNAME and PASSWORD, but eventually it will allow you to do things like specify the encryption protocol to use when encrypting your data and sending it to the Snapchat servers.

Installation

The sfs file is a Python script that currently sits in the root directory and never moves, because there's no installation script. You can run it with a command like ./sfs. If you want to move into bin/ or something, you'll have to do it yourself.

In order to install dependencies: pip install -r requirements.txt

Someday this will be pip-installable or something.

Authors

Author GitHub username Personal Site Contribution
Chad Brubaker @pencilo - wrote some of snapchat_core. See his pysnapchat repot for a very similar implementation. (All work used with permission.)
Alex Clemmer @hausdorff nullspace wrote everything else.
Michael Rosenberg @doomrobo - bug fixes, better login mechanisms, single-file download
- @anshukla - added requirements.txt

LICENSE

Distributed under MIT, which basically means that if you should use this code for anything, you just have to keep a note saying we wrote the code. That said, God help you should you actually decide to use this code.

MIT License

Copyright (C) Alex Clemmer (@hausdorff) and Chad Brubaker (@pencilo)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

snapchat-fs's People

Contributors

hausdorff avatar anshukla avatar aaron1011 avatar

Watchers

James Cloos avatar  avatar

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.