Giter Club home page Giter Club logo

slogger's Introduction

End of life

Slogger is no longer actively supported. Some parts of it may still work, but there are no guarantees, and as a whole the apps and services it depends on have changed and without active maintenance, it's no longer viable. Thanks for all the love during its development, and please let me know if you know of viable alternatives.


Upgrade Note

If you are upgrading from a version prior to 2.0.12, please remove the RSSLogger section from slogger_config and regenerate it by running slogger again. A new section will be added in addition to RSSLogger called Bloglogger. RSSLogger now logs all entries for the timespan as a single digest entry, whereas Bloglogger loads each item found as an individual "post."

Description

Slogger indexes various public social services and creates Day One (http://dayoneapp.com/) journal entries or plain text Markdown files for them. It allows you to keep a personal journal that collects your online social life automatically, all in one place.

Features

  • Slogger 2.x uses a plugin architecture to allow easy extension
    • Default plugins:
      • Github
        • new plugin, supercedes Gist logger.
        • Logs push, watch and gist activity
      • Flickr
        • images uploaded in the last 24 hours, each as an individual post
        • Can handle multiple accounts
      • Last.fm
        • Scrobbled songs for the current day
        • updated to grab more songs
      • Blog entries
        • designed to pull in your blog posts with leading image and excerpt (optionally markdownified).
        • Handles multiple feeds
      • RSS Feeds
        • logs any feed entries for the given timespan as a digest entry
        • handles multiple feeds
      • Twitter
        • Tweets and Favorites for the day as digest entries
        • handles multiple Twitter accounts
      • Instapaper
        • Unread and/or individual folders
      • Foursquare
        • Checkins for the day
      • Pinboard
        • Daily digest with descriptions
        • optionally include bookmark tags in entry
      • Pocket
        • Digest list of links---read and unread---posted to Pocket
      • Goodreads
        • books marked read for the day, one entry each with book cover image, ratings and your review.
        • Inserted at the date marked finished.
      • App.net
        • App.net posts for the current day
      • OmniFocus complete tasks for the day
    • There are additional plugins in the default "plugins_disabled" folder. They can be enabled by copying them to your "plugins" folder.
      • These are typically disabled by default because they require advanced setup or have limited use for most users. Read the headers in each plugin file for additional details.
      • Some of the additional plugins available:
        • GetGlue
        • Google Analytics (advanced setup)
        • Gist
        • SoundCloud
        • Strava
        • untappd (requires untappd gem)
          • beer checkins for the day
        • Wunderlist new and optionally completed/overdue tasks (see notes for required gems/versions)
  • Slogger can be called with a single argument that is a path to a local image or text file, and an entry will be created containing its contents.
    • You can use this with a folder action or launchd task to add files from a folder connected to something like http://IFTTT.com. Any images added to the watched folder will be turned into journal entries.
      • Note that Slogger does not delete the original file, so your script needs to move files out of the folder manually to avoid double-processing.
  • NEW: #tags in posts are saved as native tags. Default tags specified in the config are saved, as well as any hashtags present in the post. Github #XX issue references are ignored.

Install

  1. Download and unzip (or clone using git) the Slogger project. It can be stored in your home directory, a scripts folder or anywhere else on your drive.

  2. Make sure you have the Xcode command line tools installed. (See Troubleshooting section below.)

  3. From the command line, change to the Slogger folder and run the following commands:

     sudo gem install bundler
     bundle install
    
  4. Default plugins are stored in /plugins/, additional plugins are usually found in /plugins_disabled/. Plugins are enabled and disabled by adding/removing them from the /plugins/ folder. Move any additional plugins you want to use into /plugins/ and disable any other plugins by moving them from /plugins/ to plugins_disabled. (Plugins that are found in plugins but not configured will not break anything, but you'll see warnings when run.)

  5. From within the Slogger folder, run ./slogger --update-config to create the initial configuration file. If this doesn't work, you may need to make the file executable: chmod a+x slogger from within the Slogger folder. Note that any time you add new plugins or update existing ones, you'll want to run ./slogger --update-config to ensure that your available options are up to date.

  6. Edit the file slogger_config that shows up in your Slogger folder

    • The required options will be 'storage:', 'image_filename_is_title:', 'date_format:' and 'time_format:'
    • storage: should be one of
      • 'icloud'
      • For use with Day One 2, use a path like /Users/[username]/Library/Group Containers/5U8NS4GX82.dayoneapp2/Data/Auto Import/Default Journal.dayone/
      • a path to a Dropbox-synced Journal (e.g. /Users/username/Dropbox/Apps/Day One/Journal.dayone)
      • a path to a folder for storing markdown files and related images (if the path doesn't end in "Journal.dayone", markdown storage is triggered automatically)
    • image_filename_is_title: should be set to true or false. If true, it will use the base filename (without extension) as the title of images imported individually.
    • date_format and time_format should be set to your preferred style (strftime)
  7. Edit additional configuration options for any plugins defined. The config file is formatted as YAML, and your options need to conform to that syntax. For the most part, you can just maintain the formatting (quotes, dashes, brackets, etc.) of the default settings when updating.

    • Note: Some plugins have options that will be filled in automatically. For example, the Twitter plugin requires you to log in on the command line and enter a PIN, after which it completes the authorization and saves your token to the configuration. If you install a plugin which requires oAuth, be sure to run Slogger from the command line with "./slogger -o plugin_name" once to complete the login procedure and save your credentials.
  8. Next time you run ./slogger, it will execute the enabled and configured plugins and generate your journal entries.

Usage

  1. From within the Slogger folder, run ./slogger to run the data capture for the plugins you have in you /plugins/ directory.
  2. Check the output to see if there are any errors occurring. Plugin configuration errors can be ignored, or you can remove offending plugins from the /plugins/ folder (if you don't need them).
  3. If you wish to automate slogger:
    • use Lingon, LaunchControl, or other launchd scheduling app, or...
    • run ./install.rb to automatically install a launchd task that will run at 11:50pm every night. It's the same as Lingon would create, but all free and stuff.
      • To uninstall the launchd task, run the command rm ~/Library/LaunchAgents/com.brettterpstra.slogger.plist and then log out and back in.

Command line options

$ ./slogger -h
Usage: slogger [-dq] [-r X] [/path/to/image.jpg]
    --update-config                  Create or update a slogger_config file. No plugins will be run.
    -c, --config FILE                Specify alternate configuration file
    -d, --develop                    Develop mode
    -h, --help                       Display this screen
    -o, --onlyrun NAME[,NAME2...]    Only run plugins matching items in comma-delimited string (partial names ok)
    -q, --quiet                      Run quietly (no notifications/messages)
    -r, --retries COUNT              Maximum number of retries per plugin (int)
    -s, --since-last                 Set the timespan to the last run date
    -t, --timespan DAYS              Days of history to collect
    -u, --undo COUNT                 Undo the last COUNT runs
    -v, --version                    Display the version number

Note: You can use the -s option to only log since the last run date, handy if you want to run Slogger more or less than once per day or are testing plugins.

You can also use -o to run only a certain plugin in the standard plugin directory: just provide it with enough of the name to be unique, e.g. slogger -o gist.

The -u X option will undo the last X runs. This works by checking the timestamp of the run and deleting any entries created after that timestamp. It should not be used if you have manually created entries since the last Slogger run. It also does not remove the run timestamps from the list, so running ./slogger -u 4 will remove the entries created by the last four runs, and then running ./slogger -u 5 will undo one more run in history.

Updating Slogger

Slogger is currently actively maintained, meaning new fixes and features are regularly available. To update your Slogger installation, download the zip file for the latest version (the link on this page is always current) into a new folder. Copy the new files over existing files to update them. If you've enabled plugins that are disabled by default, you'll need to copy them from the new folder's "plugins_disabled" folder to your current "plugins" folder.

As long as you don't move or delete your slogger_config file, all of your settings will be preserved after the update.

Plugin development

More documentation coming. See plugin_template.rb to get started.

If you want to edit an existing plugin to change parameters or output, move the original to plugins_disabled and make a copy with a new name in plugins. It will make it easier to update in the future without losing your changes.

When developing plugins you can create a directory called 'plugins_develop' in the same folder as 'plugins' and work on new plugins in there. When you run slogger, use ./slogger -d to only run plugins in the develop folder while testing.

@log is a global logger object. use @log.info("Message") (or warn/error/fatal) to generate log messages using the default formatter.

@config is the global configuration object. Your plugin settings will be stored under @config[PluginClassName]. If you return the config object at the end of your do_log function, any modifications will be stored (e.g. for saving oAuth tokens).

$options contains options parsed from the command line. Use $options[:optionname] to read the setting.

  • :develop whether Slogger was run in develop mode
  • :timespan the timespan passed from the command line as number of days (int)
  • :quiet suppresses log messages. This affects the log formatter and shouldn't generally be needed. Just create log messages using @log and if :quiet is true, they'll be suppressed.
  • :retries is the number of retries to attempt on any given operation. Create loops in network calls and parsing routines to allow for retry on failure, and use $options[:retries] to determine how many times to iterate.

@timespan is available to all plugins and contains a date object based on the timespan setting. This defaults to 24 hours prior to the run.

@date_format, @time_format and @datetime_format (this is just the conjunction of the first two) are available to all plugins and should be used wherever you output a date or time to DayOne files, e.g. Time.now.strftime(@date_format).

Troubleshooting

System Requirements

Slogger depends on Apple’s system Ruby version to run. You can check the Ruby version by typing ruby -v in your terminal, it should return something like ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13].

As of the release of Mavericks Apple are providing Ruby version 2.0. Slogger is transitioning to full 2.0 support so meanwhile your mileage may vary.

If you are using RVM or RBENV to manage your Ruby installation, you can set an alternative Ruby version as the default.

For RVM check here: https://rvm.io/rubies/default

For RBENV check here: https://github.com/sstephenson/rbenv#choosing-the-ruby-version

Xcode Command Line Tools

In order for Slogger to run you must have an up-to-date version of Xcode's Command Line Tools installed.

Download Xcode from the OSX App Store. When it has downloaded launch it, open "Preferences", and under "Downloads" click on the arrow to the right of "Command Line Tools".

Alternatively you can download the command line tools from Apple here: https://developer.apple.com/downloads/index.action

Known Issue with Xcode 5.1

Apple updated the clang compiler to version 5.1 with the latest Xcode update, which breaks building gems with native extensions. They fail with this error: clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future] You can check your version of clang with clang -v on the terminal.

While that bug is being worked on, here is a temporary workaound:

First we need to install bundler.

sudo env ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install bundler

And after that, use bundler to install other gems:

sudo env ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future bundle install

Plugins

If Slogger is running, but returning an error message, it may be an issue with a plugin configuration.

It may help to move all plugins to the Disabled Plugins directory, and then add them back into the Plugins directory one by one, running ./slogger each time to ensure it is not returning any errors. That way, you can identify if there is an issue with a particular Plugin.

Common issues with Plugins:

  1. Feeds entered incorrectly. Multiple RSS feeds should be entered like feeds: [http://feed1.com/feed1.rss, http://feed2.com/feed2.rss, http://feed3.com/feed3.rss]

  2. Attempting to fetch an invalid feed. Feeds can be validated here: http://validator.w3.org/feed/

Sync / Dropbox

It's not uncommon to have some sync issues using iCloud. The developers of the Day One app explicitly favour using Dropbox to sync your journal between your Mac and iPhone or iPad. So maybe use Dropbox.

If you are using Dropbox, a common location for your Day One Journal, which will need to be entered in the Slogger Config file under "Storage" is /Users/YOURUSERNAME/Dropbox/Apps/Day One/Journal.dayone. Please note that if you have moved your Dropbox, to your Desktop for instance, that would change the path required to /Users/YOURUSERNAME/Desktop/Dropbox/Apps/Day One/Journal.dayone

Date and Time Formats

By default Slogger sets the Date format to ISO 8601 (Y/m/d) "%F" and the Time format to H:M (24-hour clock) "%R". These settings can be changed to anything from the strftime specification, viewable here: http://linux.die.net/man/3/strftime.

The European Date format dd/mm/yy is not supported. The closest option is probably to set date to "%x" which is "The preferred date representation for the current locale without the time."

License

 __  _
/ _\| | ___   __ _  __ _  ___ _ __
\ \ | |/ _ \ / _` |/ _` |/ _ \ '__|
_\ \| | (_) | (_| | (_| |  __/ |
\__/|_|\___/ \__, |\__, |\___|_|
             |___/ |___/
     Copyright 2013, Brett Terpstra
           http://brettterpstra.com
               --------------------

Slogger by Brett Terpstra is licensed under the MIT License.

The MIT License (MIT) Copyright (c) 2016 Brett Terpstra 

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.   

slogger's People

Contributors

alexito4 avatar arjenschwarz avatar bjornkri avatar brettbukowski avatar coopermj avatar crahan avatar darrinholst avatar dhutchison avatar dombarnes avatar drallgood avatar freddielindsey avatar gabysbrain avatar geopet avatar hiltmon avatar jeffmueller avatar jsatk avatar juliengrimault avatar larryhynes avatar lazyguru avatar marcosero avatar masukomi avatar maxkandler avatar mckeehan avatar nall avatar randomphrase avatar rjp avatar scavone avatar spiritofnine avatar steinerl avatar ttscoff 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  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

slogger's Issues

Feature request: specify previous dates, and save entry in that day

Since I'm using Slogger on a laptop, it's not always on and running at 11:50pm to collect my days' goings-on. I thought I might be able to use the -t DAYS option to collect posts from previous days, but it doesn't work quite how I hoped: it will gather posts from those previous days, but then lump them all into a Day One entry that's dated with today's date.

It would be handy, for that reason, to have something like a --date option to specify a date to run for, and create the Day One entry at (say) 11:50pm on that day. So, for example, to get my posts from yesterday, I might run:

./slogged --date 2012-10-08

Parsing RSS

I'm getting the following error when I try to parse my blog feed

BlogLogger: Logging posts for feeds    http://www.jamesmattison.co.uk/index.php/blog/rss_2.0
#<NoMethodError: undefined method `strip' for nil:NilClass>
BlogLogger: Error parsing http://www.jamesmattison.co.uk/index.php/blog/rss_2.0, retrying (1/1)
#<NoMethodError: undefined method `strip' for nil:NilClass>
BlogLogger: Could not parse feed http://www.jamesmattison.co.uk/index.php/blog/rss_2.0

My blog's xml feed:
http://www.jamesmattison.co.uk/index.php/blog/rss_2.0

I've got a feeling this is probably caused by poor blog construction rather than slogger not working, but confirmation would be great...

GitHub public activity feed: no time information

I would like to log my public activity at GitHub. But it seems that the GitHub-generated feed does not have the time information in the correct tag. In fact they use the <published>-tag. Maybe this is related to #2.

This is the error I get:

#<ArgumentError: no time information in "">
!!11:08:57            RSSLogger: Could not parse feed https://github.com/bilke.atom

Problems with Psych

When googling I found this (related?) issue from an eventbrite client. Mentioning that psych could be fixed by using an unmaintained YAML parser named syck.

/Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych.rb:203:in `parse': (<unknown>): found unexpected ':' while scanning a plain scalar at line 19 column 12 (Psych::SyntaxError)
    from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych.rb:203:in `parse_stream'
    from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych.rb:151:in `parse'
    from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych.rb:127:in `load'
    from /Users/me/.Slogger/lib/configtools.rb:10:in `block in load_config'
    from /Users/me/.Slogger/lib/configtools.rb:10:in `open'
    from /Users/me/.Slogger/lib/configtools.rb:10:in `load_config'
    from ./slogger:72:in `initialize'
    from ./slogger:176:in `new'
    from ./slogger:176:in `<main>'

Error in FacebookIFTTTLogger

Something is wonky with the IFTTTLogger's parsing of the text file IFTTT creates. (Or I'm somehow making the wrong file with IFTTT.)

12:57:17  FacebookIFTTTLogger: Logging FacebookIFTTTLogger posts at /Users/emory/Dropbox/ifttt/facebookstatus.md.txt
/Users/emory/Projects/Slogger/plugins/facebookifttt.rb:80:in `do_log': undefined method `each' for #<String:0x007fce3b4fb0d0> (NoMethod
Error)
        from /Users/emory/Projects/Slogger/slogger.rb:169:in `block in run_plugins'
        from /Users/emory/Projects/Slogger/slogger.rb:157:in `each'
        from /Users/emory/Projects/Slogger/slogger.rb:157:in `run_plugins'
        from /Users/emory/Projects/Slogger/slogger.rb:286:in `<top (required)>'
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from ./slogger:9:in `<main>'

That file is formatted like so:

$ cat ~/Dropbox/ifttt/facebookstatus.md.txt 
Post: blah blah blah this is an outrage
Date: September 28, 2012 at 09:55AM 

- - - - - 

In order to get it to run I had to change the last line on facebookifttt.rb to be $end instead of end, I'm using ruby-1.9.2p323 via rvm on OS X.

oauth LoadError

$ cd ~/bin ; rm -rf Slogger

$ git clone https://github.com/ttscoff/Slogger.git
Cloning into 'Slogger'...
remote: Counting objects: 273, done.
remote: Compressing objects: 100% (125/125), done.
remote: Total 273 (delta 143), reused 269 (delta 139)
Receiving objects: 100% (273/273), 82.34 KiB, done.
Resolving deltas: 100% (143/143), done.

$ cd Slogger

$ ./slogger
./slogger:20:in `require': no such file to load -- /Users/s09/bin/Slogger/lib/oauth (LoadError)
from ./slogger:20

undefined method `pubDate' on rss logging

Here is the output I get when run:

 % ./slogger                                                                        !217
I, [2012-08-24T15:31:35.452269 #67032]  INFO -- : Getting Last.fm playists for newtux
I, [2012-08-24T15:31:36.367101 #67032]  INFO -- : Saving entry to /Users/newtux/Library/Mobile Documents/5U8NS4GX82~com~dayoneapp~dayone/Documents/Journal_dayone/entries/5DD8E11C0B3842279A15A9ACF7875656.doentry
I, [2012-08-24T15:31:36.891334 #67032]  INFO -- : Logging rss posts for feeds http://feeds.pinboard.in/rss/secret:55e973286caf5351e171/u:newtux/, http://www.instapaper.com/rss/197788/5onzKNiSWl9uXgBvHW9V2vkRO60
/Applications/Slogger/plugins/rsslogger.rb:62:in `do_log': undefined method `pubDate' for #<RSS::RDF::Item:0x101adf7f8> (NoMethodError)
    from /Applications/Slogger/plugins/rsslogger.rb:61:in `each'
    from /Applications/Slogger/plugins/rsslogger.rb:61:in `do_log'
    from /Applications/Slogger/plugins/rsslogger.rb:54:in `each'
    from /Applications/Slogger/plugins/rsslogger.rb:54:in `do_log'
    from ./slogger:97:in `run_plugins'
    from ./slogger:90:in `each'
    from ./slogger:90:in `run_plugins'
    from ./slogger:137

Maybe there's a better way to log pinboard and Instapaper entries?

Unable to make Pocket plugin work

I think I've set up the plugin correctly, here is the line with the username:

pocket_username: fabr1z

And I've set on Pocket the rss feed without password. But when I launch slogger, I get this line:

09:50:16 PocketLogger: Getting Pocket posts for

As you can see, no mention of the username.

Where I'm doing wrong? What I'm missing?

Thank you

Feature Request: Descriptive file names for Markdown output

It'd be lovely if the Markdown files generated by Slogger included the service name and (for plugins that accept multiple feeds) the username, account ID, feed domain name, &c..

I'm not sure of the best format for this, but

DATE_#_#_SERVICE_NAME.md

seems fairly sensible.

So, for example, my Slogger files for today might look like this:

2012-09-30_122133_818_rss_onethingwell_org.md
2012-09-30_122133_3227_pinboard_mottram.md
2012-09-30_122128_1937_instapaper_jack_mottram.md
[email protected]

Goodreads not pulling currently-reading

Haven't been able to successfully set up a good reads feed. Not sure if I am mangling the URL. No issues shown in log. (When I remove the http:// I do see connection and parse errors) My config:

GoodreadsLogger:
goodreads_star_posts: false
goodreads_tags: "@social @reading"
description:

Twitterlogger Images

Is the expected behavior in the latest version to log tweets that include an image link in addition to creating a new post with the image? If not, recommend you put in a:

if tweet_images.empty?
tweets+=...
end

around line 120. I did that in my code and it works well now. Seems like this is a new issue, as the original code omitted the tweets that included a picture link.

If you want the tweet digest to include those links, recommend updating the time that is passed to tweet_images to somehow be in local time. It is currently passed in UTC time, so the digest times are all wacky.

Pocketlogger

The RSS version of pocketlogger works ok, but doesn't give you much control over what you get back (i.e., read vs unread). The api seems easy enough, so I'm working on a re-write that utilizes the API to get results. Just in case anyone cares.

Trouble setting up pinboard

I'm getting the following error.

18:11:02 PinboardLogger: Getting Pinboard bookmarks for 1 feeds
Error getting posts for http://pinboard.in/u:macdrifter/public/

<RSS::NotWellFormedError: This is not well formed XML

Missing end tag for 'meta' (got "head")
Line:
Position:
Last 80 unconsumed characters:

<script language="ja>

Could someone show me an example of what they have for there config?

Here is mine:


TwitterLogger:
save_images: true
description:

  • Logs updates and favorites for specified Twitter users
  • twitter_users should be an array of Twitter usernames, e.g. [ ttscoff, markedapp ]
  • save_images (true/false) determines weather TwitterLogger will look for image urls and include them in the entry
  • "droplr_domain: if you have a custom droplr domain, enter it here, otherwise leave it as d.pr "
    twitter_tags: "@social @twitter"
    twitter_users:
  • mandaris
    TwitterLogger_last_run: Wed Sep 5 18:11:04 2012
    droplr_domain: d.pr
    PinboardLogger:
    PinboardLogger_last_run: Wed Sep 5 18:11:02 2012
    pinboard_description:
  • Logs bookmarks for today from Pinboard.in.
  • pinboard_feeds is an array of one or more Pinboard RSS feeds
    pinboard_tags: "@social @bookmarks"
    pinboard_feeds:
  • http://pinboard.in/u:macdrifter/public/
    pinboard_save_hashtags: true
    image_filename_is_title: true
    GistLogger:
    gist_user: mandaris
    description:
  • Logs daily Gists for the specified user
  • gist_user should be your Github username
    gist_tags: "@social @coding"
    GistLogger_last_run: Wed Sep 5 18:11:01 2012
    last_run_time: Wed Sep 5 18:11:01 2012
    storage: icloud

Thank you.

Request: Different tags for each RSS feed

Just thought it would be great if a user would be able to give each feed its own tags. This way one could pull an RSS feed from their Twitter favorites and YouTube and tag them "twitterfavs" and "youtube" respectively. Would that be doable?

foursquarelogger not working

I'm guessing some of Mueller's code didn't make it on the final version. It's necessary to modify the default_config and add the @today variable definition. I've also added a description row to the foursquare_feed section, as I've had a hard time finding it.

default_config = {
'description' => [
'foursquare_feed must refer to the address of your personal feed. It should be available at https://foursquare.com/feeds/'],
'foursquare_feed' => "",
'foursquare_tags' => "@social @checkins"
}

@today = Time.now - (60 * 60 * 24)

That solves it.

BlogLogger: Full Post Option throws Undefined Method Error ('strip')

Running BlogLogger with

full_posts: true
yields this error reporting:

#<NoMethodError: undefined method `strip' for nil:NilClass>
! 00:11:59           BlogLogger: Error parsing http://myblog.com/feed/, retrying (1/1)
#<NoMethodError: undefined method `strip' for nil:NilClass>
!!00:12:02           BlogLogger: Could not parse feed http://myblog.com/feed/

This error occurs regardless of the settings for

star_posts
,
markdowninfy_posts
, and
blog_tags
.

RSSLogger w/ Blogger

I'm not a programmer so I'm not going to try to fix this myself. But I thought you might find the error helpful. I've changed my specific blog to a generic "myblog" in the url. The rss.xml endpoint works for NetNewsWire.

10:04:16 RSSLogger: Logging rss posts for feeds http://myblog.blogspot.com/rss.xml

<NoMethodError: private method `gsub' called for #RSS::Atom::Feed::Title:0x1057110a0>

! 10:04:17 RSSLogger: Error parsing http://myblog.blogspot.com/rss.xml, retrying (1/1)

<NoMethodError: private method `gsub' called for #RSS::Atom::Feed::Title:0x10571fb00>

!!10:04:20 RSSLogger: Could not parse feed http://myblog.blogspot.com/rss.xml

Facebook

There must be a way of getting facebook status updates into Day One witha combination of IFTTT, Dropbox, Hazel and Slogger, yes? I have an IFTTT rule set up to post facebook status updates to a dropbox folder but I need to know how to get Slogger to pick up these entries from the Dropbox folder and create a Day One entry out of them. I’m happy to start looking into the Slogger code to maybe produce a plug-in for this though I’m not familiar with Ruby. Is there a plug-in that would act as a template/startign point that I could use?

Maybe someone has already managed this?

Failure getting response from twitter

I am getting the following error:

04:21:56        TwitterLogger: Getting Twitter timeline for gveloper
Error getting timeline for gveloper
#<RuntimeError: Failure getting response from Twitter>
! 04:21:56        TwitterLogger: Error parsing Tweets for gveloper, retrying (1/1)
  04:21:58        TwitterLogger: Getting Twitter timeline for gveloper
Error getting timeline for gveloper
#<RuntimeError: Failure getting response from Twitter>
  04:21:58        TwitterLogger: Getting Twitter favorites for gveloper
Error getting favorites for gveloper
#<RuntimeError: Failure getting response from Twitter>
! 04:21:58        TwitterLogger: Error parsing Favorites for gveloper, retrying (1/1)
  04:22:00        TwitterLogger: Getting Twitter favorites for gveloper
Error getting favorites for gveloper
#<RuntimeError: Failure getting response from Twitter>

I used curl against the urls in the plugin, and pulled the feeds successfully, so I'm not sure what's going on. Is there a verbose debug mode?

(erb):1:in `to_dayone': undefined local variable or method `br' for #<DayOne:0x97cc398> (NameError)

Using ruby-1.9.3-p194.

No matter what plugins I have configured, I always see this error.

The 'storage' configuration option is set to NOT use a Day One database.

Here's the relevant part of the stacktrace:

  22:20:24               DayOne: =====[ Saving entry to entries/2012-12-19_102024_850 ]
(erb):1:in `to_dayone': undefined local variable or method `br' for #<DayOne:0x97cc398> (NameError)
        from /home/josh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/erb.rb:838:in `eval'
        from /home/josh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/erb.rb:838:in `result'
        from /home/josh/Software/Slogger/lib/dayone.rb:40:in `to_dayone'
        from /home/josh/Software/Slogger/plugins/lastfmlogger.rb:97:in `block in do_log'
        from /home/josh/Software/Slogger/plugins/lastfmlogger.rb:44:in `each'
        from /home/josh/Software/Slogger/plugins/lastfmlogger.rb:44:in `do_log'
        from /home/josh/Software/Slogger/slogger.rb:197:in `block in run_plugins'
        from /home/josh/Software/Slogger/slogger.rb:185:in `each'
        from /home/josh/Software/Slogger/slogger.rb:185:in `run_plugins'
        from /home/josh/Software/Slogger/slogger.rb:325:in `<top (required)>'
        from /home/josh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /home/josh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from ./slogger:18:in `<main>'

I am able to get past the error if I remove all occurrences of <%= br %> in the MARKDOWNTEMPLATE section of slogger.rb, but this is almost certainly not a correct fix.

Although I'm not familiar enough with Ruby to fix the problem correctly, these StackOverflow threads look relevant:

http://stackoverflow.com/questions/8665629/erb-gives-me-undefined-local-variable-or-method-for-mainobject-nameerror

http://stackoverflow.com/questions/1338960/ruby-templates-how-to-pass-variables-into-inlined-erb

No config file created

When I run slogger for the first time, it does not create a config file at all. I have tried moving the folder to another directory but I get the same result. This is the output when I run Slogger.

/Users/rmlewisuk/Dropbox/Apps/Slogger/lib/configtools.rb:5:in initialize': uninitialized constant YAML::ENGINE (NameError) from ./slogger:50:innew'
from ./slogger:50:in initialize' from ./slogger:183:innew'
from ./slogger:183

syntax error: Can’t get application id "com.omnigroup.OmniFocus". (-1728)

13:48:33 OmniFocusLogger: Logging for completed tasks
syntax error: Can’t get application id "com.omnigroup.OmniFocus". (-1728)
/Applications/Slogger/plugins/omnifocus.rb:52:in do_log': undefined methodeach' for "":String (NoMethodError)
from /Applications/Slogger/slogger.rb:169:in block in run_plugins' from /Applications/Slogger/slogger.rb:157:ineach'
from /Applications/Slogger/slogger.rb:157:in run_plugins' from /Applications/Slogger/slogger.rb:286:in<top (required)>'
from internal:lib/rubygems/custom_require:29:in require' from <internal:lib/rubygems/custom_require>:29:inrequire'
from ./Slogger:9:in `

'

slogger_image.rb

The image importer has also stopped working for me, I've deleted my old hazel rules and recreated them using the new file but it's not grabbing the photos.

Twitter feed

So is the twitter feed going to stop working with upcoming changes to twitter? I see IFTTT are about to stop supporting twitter due to their changes, I just wonder if the twitterfeed in slogger will stop working too?

MAJOR_VERSION

Hi,

Confession time: this is the first Ruby script I've ever installed, so this is likely my fault somehow. I installed Slogger according to README.mb, and edited slogger_config with the location of my Day One journal.

When I attempt to run it to update the config file, I get the following error:

C:/Users/Paul/Documents/Slogger/slogger.rb:300:in `<main>': uninitialized consta

nt MAJOR_VERSION (NameError)

What am I doing wrong?

PcoketLogger_API: 'require' and oauth errors

When trying to run the PocketLogger_API plugin, I get the following errors:

    /path/to/slogger/plugins/pocketlogger_api.rb:30:in `require': no such file to load -- oauth (LoadError)
    from /path/to/slogger/plugins/pocketlogger_api.rb:30
    from /path/to/slogger/slogger.rb:154:in `require'
    from /path/to/slogger/slogger.rb:154:in `run_plugins'
    from /path/to/slogger/slogger.rb:152:in `each'
    from /path/to/slogger/slogger.rb:152:in `run_plugins'
    from /path/to/slogger/slogger.rb:150:in `each'
    from /path/to/slogger/slogger.rb:150:in `run_plugins'
    from /path/to/slogger/slogger.rb:302
    from ./slogger:9:in `require'
    from ./slogger:9

Image sizing

Hello and many many thanks for slogger!

I noticed Day One resizes images to max dimensions of 1600 pixels, but slogger resizes them to max dimensions of 800 pixels. Could this be changed? I don’t know anything about Ruby, so the changes I made probably won’t help you, but here they are:

# line 75 in dayone.rb

# check max image dimension and only resize image if larger than that
height = Integer(%x{sips --getProperty pixelHeight "#{orig}" 2>&1}.split(":")[1])
width = Integer(%x{sips --getProperty pixelWidth "#{orig}" 2>&1}.split(":")[1])
if width > 1600 || height > 1600
      res = %x{sips -Z 1600 "#{orig}" 2>&1}
end

No such file to load

Amy-Pond:~ briantiede$ /Users/briantiede/Slogger/slogger ; exit;
/Users/briantiede/Slogger/slogger:9:in `require': no such file to load -- ./slogger (LoadError)
from /Users/briantiede/Slogger/slogger:9
logout

Getting this when I updated to the most recent version.

What protocol does slogger get data through?

Question is pretty much in the title. I had Slogger running well at home and then I go back to school. The schools network blocks SSH, FTP, etc and only leaves HTTP and HTTPS open.

I haven't been able to pull anything down from RSS feeds to Twitter updates.

Timestamp in foursquare is a day out

For some reason the timestamp on foursquare posts seems to be a day behind. Can't seem to work this out as it uses the @timespan variable. My slogger script ran today (22nd of September) at 23:50 but the date in the foursquare entry in Day One is showing as 21st September.

configure time and date formats

It would be nice to configure time and date formats globally in 'slogger_config' instead of manipulating every single plugin.

can't convert String into Integer TypeError

$ ./slogger
Initializing Slogger v2.0 (2.0.4)...
Running
11:40:38 FlickrLogger -> Getting Flickr images for 47824335@N00
11:40:38 FlickrLogger -> Found 2 images
11:40:40 DayOne -> Retrieving image -
Source: http://farm9.staticflickr.com/8287/7854233104_62aa84b56d.jpg
Target UUID: 7F5495DEC28B4D6B99681AD9C2F37450
11:40:40 DayOne -> Resizing image 7F5495DEC28B4D6B99681AD9C2F37450.jpg
11:40:40 DayOne -> Saving entry to entries/7F5495DEC28B4D6B99681AD9C2F37450.doentry
11:40:41 DayOne -> Retrieving image -
Source: http://farm9.staticflickr.com/8425/7854141964_5cdc0eff56.jpg
Target UUID: C5756ECF96C9461180B38696ED596A2F
11:40:41 DayOne -> Resizing image C5756ECF96C9461180B38696ED596A2F.jpg
11:40:41 DayOne -> Saving entry to entries/C5756ECF96C9461180B38696ED596A2F.doentry
11:40:41 InstapaperLogger -> Getting Instapaper posts for 1 accounts
11:40:42 DayOne -> Saving entry to entries/0583753014264C9288BB2A2D086DD528.doentry
./slogger:113:in []': can't convert String into Integer (TypeError) from ./slogger:113:inrun_plugins'
from ./slogger:112:in each' from ./slogger:112:inrun_plugins'
from ./slogger:108:in each' from ./slogger:108:inrun_plugins'
from ./slogger:182

Error getting favorites for twitter

I'm getting the following error when I manually run

Error getting favorites for griffmiester
#<REXML::ParseException: #<REXML::ParseException: Missing end tag for 'link' (got "head")
Line: 
Position: 
Last 80 unconsumed characters:
   <body>     <div class="topbar js-topbar">       <div class="global-nav" data-s>
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rexml/parsers/baseparser.rb:330:in `pull'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rexml/parsers/treeparser.rb:22:in `parse'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rexml/document.rb:227:in `build'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rexml/document.rb:43:in `initialize'
/Users/griffmiester/Slogger/plugins/twitterlogger.rb:72:in `new'
/Users/griffmiester/Slogger/plugins/twitterlogger.rb:72:in `get_tweets'
/Users/griffmiester/Slogger/plugins/twitterlogger.rb:162:in `do_log'
/Users/griffmiester/Slogger/plugins/twitterlogger.rb:160:in `each'
/Users/griffmiester/Slogger/plugins/twitterlogger.rb:160:in `do_log'
./slogger:117:in `run_plugins'
./slogger:109:in `each'
./slogger:109:in `run_plugins'
./slogger:187
...
Missing end tag for 'link' (got "head")
Line: 
Position: 
Last 80 unconsumed characters:
   <body>     <div class="topbar js-topbar">       <div class="global-nav" data-s
Line: 
Position: 
Last 80 unconsumed characters:

Any help?

./slogger:39: invalid multibyte escape: /(?=[^a-zA-Z0-9_.\/\-\x7F-\xFF\n])/

I'm stuck trying to create the initial configuration file.

$ git clone https://github.com/ttscoff/Slogger.git
Cloning into 'Slogger'...
remote: Counting objects: 273, done.
remote: Compressing objects: 100% (125/125), done.
remote: Total 273 (delta 143), reused 269 (delta 139)
Receiving objects: 100% (273/273), 82.34 KiB, done.
Resolving deltas: 100% (143/143), done.

$ cd Slogger/

$ ./slogger
./Slogger/slogger:39: invalid multibyte escape: /(?=[^a-zA-Z0-9_.\/\-\x7F-\xFF\n])/ 

What am I missing here?

Image datestamp

Using slogger for images, why not using the image creation date of the image ?

Does it make sense ?

If yes I can make a pull request for it.

Let me know

feedlogger not loading gem feed-normalizer

Trying to run feedlogger.rb and it's saying

feedlogger.rb:18:in `require': no such file to load -- feed-normalizer (LoadError)

I 'sudo gem install feed-normalizer' and I see it in the 'gem list' output, but I can't get the plugin to see it. Is anyone else seeing this problem? (btw, ruby -v == 1.8.7)

Andy

Tags Data Format

We're working on adding Tags into the Day One client apps.

Via Ben Dolman:

We allow the user to create any arbitrary string tags. I don't see any real need to limit it to certain characters. We could normalize case when we display tags in the client apps (so that "work" and "Work" appear as the same tag), but as far as the file format goes I think we'll keep it simple and case sensitive, if only to be liberal in what we accept when reading it.

Tags will be stored in a "Tags" node off the top-level dictionary in the XML plist. The node will contain an array of strings, like this:

<key>Tags</key>
<array>
<string>tag 1</string>
<string>tag 2</string>
</array>

Here's another example of an entry file with tags:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Creation Date</key>
<date>2012-08-15T14:54:12Z</date>
<key>Entry Text</key>
<string>Morning walk</string>
<key>Location</key>
<dict>
<key>Administrative Area</key>
<string>Utah</string>
<key>Country</key>
<string>United States</string>
<key>Latitude</key>
<real>40.400420534462107</real>
<key>Locality</key>
<string>Shoreline Valley</string>
<key>Longitude</key>
<real>-111.9273830765038</real>
<key>Place Name</key>
<string>3523 W Sweet Diary Lane</string>
<key>State</key>
<string>auto</string>
</dict>
<key>Starred</key>
<false/>
<key>UUID</key>
<string>0E1175417C1F431B987051A86495CC49</string>
<key>Weather</key>
<dict>
<key>Celsius</key>
<string>23</string>
<key>Description</key>
<string>Partly Cloudy</string>
<key>Fahrenheit</key>
<string>73</string>
<key>IconName</key>
<string>pcloudy.png</string>
</dict>
<key>Tags</key>
<array>
<string>tag 1</string>
<string>tag 2 with ,'"punctuation"!!</string>
<string>駍 彃, 鷢黳鼶 玝甿虮</string>
<string>tag with a &lt;string&gt; element embedded</string>
<string>tag with &amp; ampersand</string>
</array>
</dict>
</plist>

Time on saved twitter pics

Hello!

I’d appreciate if anyone had an opinion on this:

I tweet pictures quite often. I would like those pictures to be in DayOne as well. This part already works. I would also like them to have the correct time. At the moment, they’re all at 11:50 pm.

Now I could just do this:

#twitterlogger.rb

def download_images(images)
    
    options['datestamp'] = image['date']
    
end

But then, if I favourited a tweet with an image, it might be rather weird, because it’d expect it to show up at 11.50 pm?

Maybe the real time could only be added to your own tweeted pictures? Or would that be weird too?

Does anyone have any ideas? Or is this not an issue for anyone?

Best,
Julian

Edit: Oh, I just realised that I favourite something from two days ago it won’t get saved to DayOne anyway. I changed this accordingly.

Image datestamp

Using slogger for images, why not using the image creation date of the image ?

Does it make sense ?

If yes I can make a pull request for it.

Let me know

RSS won't work

Here's what I get when I run it:

I, [2012-08-24T13:38:40.487313 #43579] INFO -- : Getting Flickr images for brian.tiede
I, [2012-08-24T13:38:40.976373 #43579] INFO -- : No new Flickr images found
W, [2012-08-24T13:38:40.979480 #43579] WARN -- : FourSquare feed has not been configured or the feed is invalid, please edit your slogger_config file.
I, [2012-08-24T13:38:40.983551 #43579] INFO -- : Getting Last.fm playists for btiede
I, [2012-08-24T13:38:44.601766 #43579] INFO -- : Logging rss posts for feeds http://feeds.feedburner.com/blogdebrian
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rss/parser.rb:393:in const_defined?': wrong constant name Date.Taken (NameError) from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rss/parser.rb:393:instart_else_element'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rss/parser.rb:347:in tag_start' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rexml/parsers/streamparser.rb:24:inparse'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rexml/document.rb:201:in parse_stream' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rss/rexmlparser.rb:22:in_parse'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rss/parser.rb:164:in parse' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rss/parser.rb:79:inparse'
from /Slogger/plugins/rsslogger.rb:60:in do_log' from /Slogger/plugins/rsslogger.rb:54:ineach'
from /Slogger/plugins/rsslogger.rb:54:in do_log' from /Slogger/slogger:97:inrun_plugins'
from /Slogger/slogger:90:in each' from /Slogger/slogger:90:inrun_plugins'
from /Slogger/slogger:137
logout

New plugin configuration setup

I'm adding a roundtrip config system for plugins to be able to modify options during runtime. The purpose is to start handling authentication and update tokens, but it may have other possibilities. I'm limiting the plugins scope to its own section of the main config, but it will be up to each plugin not to disturb user-entered data.

Basically:

  if plugin['updates_config'] && plugin['updates_config'] == true
    # Pass a reference to config for the plugin's namespace
    updated_config = eval(plugin['class']).new.do_log(@config[_namespace])
    # plugin returns the modified hash and slogger updates
    updated_config.each { |k,v|
      @config[_namespace][k] = v
    }
  else
    # Usual thing (so that we don't break other plugins)
    eval(plugin['class']).new.do_log
  end

This is based on @hiltmon's mods, just adds the scope to it.

I also added a SloggerUtils class (not in the repo yet) with a simple "ask" method to allow command line input from the user. The idea is to streamline multi-step auth processes, allowing the user to just enter tokens and information as the plugin does its first run, and then the plugin saves the config. I'd like to make Slogger scan for new plugins (plugins active without complete configs) and if they exist, don't run existing plugins, allowing for configuration of new plugins without command line parameters.

Given that there aren't too many plugins yet, it wouldn't be out of the question to just update all of them to work with a new scheme. However, the code above does allow backward compatibility.

Any thoughts or concerns with this approach?

twitterlogger logic

in line 127, the test you do for tweet_images isn't working on my system. i had to change it to if tweet_image==[] to get the expected behavior. i'm running ruby 1.8.7, if that matters.

Slogger launchd fails when running after Wake

When I wake from sleep - the Slogger agent doesn't complete. In Console I can see this.

31/08/12 09.05.24,844 com.apple.launchd.peruser.501[230]: (com.brettterpstra.Slogger[48111]) Exited with code: 1

In runlog.txt I get:

[Fri Aug 31 09:05:24 2012] Slogger v2.0 (2.0.10.0) {:develop=>false, :quiet=>false, :onlyrun=>false, :config_file=>"/usr/local/slogger/slogger_config", :max_retries=>1, :timespan=>1, :undo=>false}

Running the agent manually with:

launchctl start com.brettterpstra.Slogger

works fine.

Any idea what could be up? Any way to get more detail on why it's crashing?

Setup:
2011 Macbook Air
OSX 10.8.1

BlogLogger: maxes out at timespan 1,040 Days

Attempting to use the BlogLogger to log all posts on my personal blog (whose entries date back 1,943 days), I was only able to retrieve entries as old as 1,040 days.

No error is generated, it's simply that the retrieval of posts ends at posts no older than 1,040 days.

My personal blog is WP based with a cookie cutter feed configuration that otherwise created no errors when parsed.

Perhaps this is an intentionally imposed limit?

Any way to extend this limit, or circumvent it?

Launch Daemon script doesn't fire in 2.0.14.3

I've set up the Launch Daemon script using install.rb, but it does not fire. It is probably related to this issue:

#52

Where slogger will run if you do it from ./slogger but not from a path like this:

/usr/bin/ruby /Users/so9/bin/Slogger/slogger

I tried to this method mentioned in issue #52 like this..

cd /Users/so9/bin/Slogger ; /usr/bin/ruby /Users/so9/bin/Slogger/slogger

...which DOES work in Terminal.. but does not when if I put this in the generated launch plist.

Help?

(and yes, so9 is that other user, I changed all that. Works from Terminal, but not via launch daemon)

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.