Giter Site home page Giter Site logo

ping-me's Introduction

Note from the author

I no longer work on this project. Maintaining a server and other extensions to store reminders and execute them on time takes a lot of effort. There are gigantic companies and startups working on this. It also made me hit my first burnout because I thought I could make everything on my own in a short duration of time. I'm thankful I learnt this early.

I agressively use Google Calendar which sends me all kinds of reminders aka Pings :') and thus instead of re-inventing the wheel, I think I can work on new ideas. Plus, there exists quite a lot of tools which interface with Google Calendar from the command line and and they take care of NLP as well. Thus, I feel there is no need to revive the project.

It was a good run. Thanks to the 300 registered and other anonymous users for giving chills to an 18 year old kid, on one of his first pet projects.

April 20, 2018

TLDR: Have a look at gcalcli or khal.


Code Health

ping-me

A Cross Platform personalized Ping

NOTE : The server is not being maintained right now. (Because my GitHub student pack expired)

The beauty of ping-me is its command line interface. Get all of your reminders done just by a single line command on your favorite terminal screen. ping-me will surely ping you at that time, no matter you are online or not. It will get to you on your phone device, smart watch and even SMS in worst cases.

Stay Lazy, Stay Updated !

Installation

Current Release - 0.3

Step 1 : Installing package and dependencies

$ pip install ping-me

Make sure all the dependencies get installed properly while the installation.

Step 2 : Setting up cronjob (Not for windows, See step 3)

$ crontab -e

In the file, add the following lines

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DISPLAY=:0.0

* * * * * get-ping

Make sure to leave a blank line at the end of the file.

Save and exit. The installation is complete.

See this for some explanation of the crontab

Step 3 : Chrome Extension

Download the chrome extension from here.

Log in with the credentials you used for ping-me. And we are done.

Note : ping-me will work even if all chrome windows are closed.

Usage

Use of flags

$ ping-me -d November-24-2015 -t 14:30 Get up and eat!

By default -d and -t accounts for datetime.today and 00:00 hours respectively. Go ahead and make experiments with the syntax.

No flags, pure language

$ ping-me to get up and eat tomorrow afternoon

Add -v flag at the end to see the verbose output.

Project Status

  • ping-me identifies date, time and message using flags
  • ping-me asks for configuration on first request
  • ping-me stores the configuration on remote server
  • ping-me stores the message with datetime stamp on the server
  • Server activates the ping 50 seconds prior to its exact time
  • Server ready for a GET request
  • ping-me makes full use of natural language processing
  • ping-me notifies through chrome/firefox extension
  • ping-me works on linux
  • ping-me works on windows
  • ping-me works on OS X
  • ping-me works on Android
  • ping-me sends texts to phone
  • ping-me ping-me works on ios
  • ping-me works on Windows phone

Contribution : Please feel free to report bugs in the application. I'll try to fix them. Also, if either of javascript or android is your piece of cake, please contact me and we'll make things up real quick. Enjoy anyways!

ping-me's People

Contributors

djokester avatar harshcrop avatar orkohunter 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ping-me's Issues

ERROR : Database Error, please report

I get this error when configurating for first time (and also when I run ping-me reconfig). It seems to be a problem with the server. This is the data sent to the server:
{'phone': '11xxxxxxxx', 'join_date': datetime.date(2016, 3, 7), 'country_code': '54', 'country_name': 'Argentina', 'phone_os': 'Unknown', 'password': 'xxxxxxxxxxxxxxxxxxxxxx', 'os': 'linux2', 'email': '[email protected]'}

The message flag isn't working !

(dev)makala@aneesh:~/test/ping/ping-me$ ping-me -d December-16-2015 -t 15:20 Get up and eat!
Message is  
Time is  ['15:20', 'Get', 'up', 'and', 'eat!']
Traceback (most recent call last):
  File "/home/makala/test/ping/dev/bin/ping-me", line 9, in <module>
    load_entry_point('ping-me==0.2.1', 'console_scripts', 'ping-me')()
  File "/home/makala/test/ping/dev/local/lib/python2.7/site-packages/ping_me-0.2.1-py2.7.egg/ping_me/ping.py", line 48, in main
    date_time = parser.parse(' '.join(args.DATE) + ' ' + ' '.join(args.TIME))
  File "/home/makala/test/ping/dev/local/lib/python2.7/site-packages/dateutil/parser.py", line 1008, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/home/makala/test/ping/dev/local/lib/python2.7/site-packages/dateutil/parser.py", line 395, in parse
    raise ValueError("Unknown string format")
ValueError: Unknown string format

I printed the args.message and args.TIME to the console to debug.
I think the argparser argument for message has to be corrected.
Cheers! Really like your project idea.

Specify what works and what doesn't

The project looks interesting and very ambitious, I mean it as a complement. The project is in a very early stage and I guess most of things specified in the README are the things you hope would work. I think you should clearly specify what works and what doesn't.

Several docstrings are missing

Currently the program is missing a few module and function docstrings, they should be created in order to better document the program's code.

Here are the missing docstrings by module:

ping_me

  • ping_me
    • Missing module docstring
  • ping_me.GET
    • Missing function docstring:
      • main()
  • ping_me.authenticate
    • Missing function docstring:
      • extract_email()
      • extract_password()
      • extract_phone()
      • check_saved_password()n
      • newuser()
      • olduser()

depends

  • ping_me.depends.text2num
    • Missing module docstring
    • Missing class docstring:
      • NumberException
    • Missing function docstring:
      • text2num()

data

  • ping_me.data.module_locator
    • Missing function docstring:
      • we_are_frozen()
      • modeule_path()

utils

  • ping_me.utils.cryptex
    • Missing module docstring
    • Missing function docstring:
      • encryptor()
      • decryptor()

Integrate with Google Calendar

Maintaining servers for free is painful. And the solutions available for free (Heroku, OpenShift, etc.) are not reliable for tasks of this importance where the server needs to be up all the time.

On the other hand, I have already been using Google Calendar for meetings, events, etc. and it has a great API too. Hence, it's now best to use Google Calendar for ping-me.

UTF-8 decoding

when i add task on russian language

$ ping-me -d November-24-2015 -t 14:30 привет
Traceback (most recent call last):
  File "/usr/local/bin/ping-me", line 9, in <module>
    load_entry_point('ping-me==0.2.1', 'console_scripts', 'ping-me')()
  File "/usr/local/lib/python2.7/dist-packages/ping_me/ping.py", line 46, in main
    ' ' + ' '.join(args.TIME))
  File "/usr/local/lib/python2.7/dist-packages/dateutil/parser.py", line 1003, in parse
    timestr = timestr.decode()
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 23: ordinal not in range(128)

Neat!

Just one query though. Does it e-mail me my ping if required?

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.