Package: grepme
GrepMeGrep for GroupMeFor something similar that runs in the browser, take a look athttps://www.searchme.co/instead.For UsersElevator pitchDo you wish GroupMe had a search function? Me too. That's why I wrote GrepMe,
a command line search tool for GroupMe that's featureful and easy to use.Installingpip install grepmeCreate your login token onhttps://dev.groupme.com/applications-> Create Application
None of the info there is used in grepme, you can give garbage values.Run grepme. You should be prompted for your login token.If you type your token wrong, you can use-Dand grepme will prompt you again,
e.g.grepme -D some_textExamplesSearch case-insensitive for 'school':grepme -i schoolShow every message from every group you're in:grepme '.*'Search in a specific group:grepme --group USCCyber apiFilter by date:grepme -d '.*' | grep 2018Search by user:grepme -u Joshua '.*'Show all available groups:grepme -lShow version:grepme -VShow messages newer than 1 week:grepme --json '.*' | jq -r "select(.created_at > $(date -d '1 week ago' +%s)) | .text"Show at most 10 messages:grepme --json '.*' | head -n 10 | jq -r '.name, .text'See it in action$ grepme -i swear --group 'ACM$'
Huиter Damroи: I work in the IBM building but I can meet you at Swearingen or anywhere.
Matthew Clapp: Is anybody in Swearingen?
ℬℜΔƉѰ: Can someone confirm that the Airport monitors in Swearingen have a Code-a-thon announcement?
Justin Baum: Hey does anyone know who I should email so my Carolina Card can get me into Swearingen?
^CConfigurationGrepMe usesconfigparsefor configuration,
see its documentation for details. For example, I use the following configuration
in~/.config/grepme.toml, which searches only in 'ACM' by default:group="^ACM$"Full usageusage: grepme [-h] [-g GROUP] [-l] [-q] [-d] [-i] [-a AFTER_CONTEXT]
              [-b BEFORE_CONTEXT] [-c CONTEXT] [-u USER] [-o] [-v] [-V] [-D]
              [--clear-cache] [--color | --no-color] [--json] [-f | -F]
              regex [regex ...]

grep for groupme, version 1.3.5

positional arguments:
  regex                 text to search

optional arguments:
  -h, --help            show this help message and exit
  -g GROUP, --group GROUP
                        group to search. can be specified multiple times
  -l, --list            show all available groups and exit
  -q, --quiet           don't show who said something
  -d, --date            show the date a message was sent
  -i, --ignore-case     ignore case distinctions in both text and groups
  -a AFTER_CONTEXT, -A AFTER_CONTEXT, --after-context AFTER_CONTEXT
                        show the following n messages after a match
  -b BEFORE_CONTEXT, -B BEFORE_CONTEXT, --before-context BEFORE_CONTEXT
                        show the previous n messages before a match
  -c CONTEXT, -C CONTEXT, --context CONTEXT
                        show n messages around a match. overrides -A and -B.
  -u USER, --user USER  search by username. can be specified multiple times
  -o, --only-matching   only show text that matched, not the whole message
  -v, --reverse-matching
                        only show messages that didn't match
  -V, --version         show version
  -D, --delete-cached   delete cached credentials. useful if you mistype in
                        the inital login prompt
  --clear-cache         delete cached message. you should very rarely have to
                        use this option
  --color               always color output
  --no-color            never color output
  --json                print messages as JSON
  -f, --favorited, --liked
                        only show liked messages
  -F, --not-favorited, --not-liked
                        never show liked messagesUnicode is handled fine, see examples above.For DevelopersTestingpip install -r dev-requirements.txttest/pre-commitIf you see any test failures, it's a bug! Please let me know:https://github.com/jyn514/GrepMe/issuesIf you have suggestions for more tests, those are also welcome.ContributingFork the repository, make some changes, make a pull request.
Note: the scripttest/pre-commitwill be run on any commit.
You may want to run it automatically yourself:ln -s ../test/pre-commit .git/hooks