/skype-search

Global skype search fast and easy

Primary LanguageJavaScriptMIT LicenseMIT

Skype search is painful. Let's do better.

Just put this little thing on a server my friend.

Holy shit, it's a useful call log.

Features above:
  • Every user has a unique background color
  • Hover over a username to get a highlight of their membership, and the calls they were on.
  • All username are alphabetized per call.
  • You can click on the channel name on the right to see ONLY THE CALLS in that channel
  • You get fractional hours for each call
  • You have an auto-complete room filter so you can see calls from a larger set.
    • In the "Chat" mode, this is all the rooms
    • In the "Call" mode, this is only the rooms that have had calls.

Note: The text isn't actually ugly-ass-yellow. That's just for the screen shot.

Crap, I can search sensibly!

Features above:

  • If you click on the arrow next to the name you get all messages +/- a 13 message window around the search context within the search room.
  • If you click on the room title, then you see only the messages from that room with respect to the search query
  • You can search multiple rooms at once
  • If you click on the "Skype-Search" brand on the left, the search query will go away and then you can see just the logs of the rooms that you have selected.
  • The search terms are a boolean OR
  • A double quoted string, such as "hello world" will search for all things within the double quotes.
  • To exclude a search term, prefix it with a "-". To search for a "-" put it in double quotes
Note: Only the first 1,000 results are shown to try to save your browser from locking up due to some bad query.

Installation

  1. You should have a PHP-friendly stack (LAMP works).
  2. In your ~/.Skype/username/ directory there is a file named main.db, either
  • copy this file into the API directory *~ OR ~*
  • hard-link from your home-directory to the api directory.

Hacks

A map of skype-names to human-readable names is created in nameMap. This is a two-way map. That's to say that both

{ 'username': 'real name'}
{ 'real name': 'username' }

Exist. This is nice if skype screws up and starts giving you a username and you don't know who that person is. (You can also figure this out through the skype search feature in the client.)

You can see when people joined or left by searching for

!join (username or leave empty)
!kick (username or leave empty)

Here's an example:

Other commands:

!file (show all the files that were sent)
!left (show when a user left on their own accord)

Regex search

You can also search for PCRE regex in a query if you start it with a '/'. For instance if you want to see if people ever gave you their phone number, a query like /\d{3}.{,2}\d{3}.?\d{4}/ may suit you well. It's worth noting that this is done in PHP and not through the SQLite3 pcre regex module - so it's a bit slow and doesn't go over everything - but it does the job.

Miscellaneous Information

  • Edited messages are edited in the database. There is no record of its previous state (although there may be in the journal or other parts of what Skype stores ...)
  • Removed messages are the same deal.
  • Skype keeps changing its schema AND backend way of storing data. Older versions of Skype (2.x) don't use sqlite3 at all for the db - but some asofyet unknown format.