
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
A framework for writing Campfire bots. Scamp is in early development so use it at your own risk, pull requests welcome.
Scamp is designed to be simple, to get out of your way and to let you do what you want. It doesn't have any baggage, so no administration web interfaces, no built in commands. It's a blank slate for you to build on.
If you like or use Scamp I'd love to hear from you. Drop me at line at will at 37signals dot com and tell me how you are using it.
Ruby >= 1.9.2
gem install scamp
or gem 'scamp'
in your Gemfile.
require 'scamp'
require 'scamp-campfire-adapter'
Scamp.new do |scamp|
scamp.adapter :campfire, Scamp::Campfire::Adapter, api_key: "YOUR API KEY",
subdomain: "yoursubdomain",
rooms: [293788]
# Simple matching based on regex or string:
scamp.match "ping" do |room, msg|
room.say "pong"
end
end
require 'scamp'
require 'scamp-campfire-adapter'
require 'em-http-request'
require 'cgi'
Scamp.new do |scamp|
scamp.adapter :campfire, Scamp::Campfire::Adapter, api_key: "YOUR API KEY",
subdomain: "yoursubdomain",
rooms: [293788]
scamp.match /^artme (?<search>\w+)/ do |room, msg|
url = "http://ajax.googleapis.com/ajax/services/search/images?rsz=large&start=0&v=1.0&q=#{CGI.escape(search)}"
http = EventMachine::HttpRequest.new(url).get
http.errback { say "Couldn't get #{url}: #{http.response_status.inspect}" }
http.callback {
if http.response_header.status == 200
results = Yajl::Parser.parse(http.response)
if results['responseData']['results'].size > 0
room.say results['responseData']['results'][0]['url']
else
room.say "No images matched #{search}"
end
else
room.say "Couldn't get #{url}"
end
}
end
end
Matchers are tested in order and all that satisfy the match and conditions will be run. Careful, Scamp listens to itself, you could easily create an infinite loop. Look in the examples dir for more.
require 'scamp'
# Add :verbose => true to get debug output, otherwise the logger will output INFO
Scamp.new do |scamp|
scamp.adapter :campfire, Scamp::Campfire::Adapter, api_key: "YOUR API KEY",
subdomain: "yoursubdomain",
rooms: [293788],
verbose: true
#
# Simple matching based on regex or string:
#
scamp.match /^repeat (\w+), (\w+)$/ do |room, msg|
room.say "You said #{matches[0]} and #{matches[1]}"
end
#
# Named captures become available in your match block
#
scamp.match /^say (?<yousaid>.+)$/ do |room, msg|
room.say "You said #{msg.matches.yousaid}"
end
end
Scamp will also run all match blocks that an input string matches, you can make Scamp only run the first block it matches by passing in :first_match_only => true:
Scamp.new :first_match_only => true do |scamp|
end
Here's the most direct way to get your work merged into the project:
Take a look at the TODO list or known issues for some inspiration if you need it.
First class support, commits and pull requests, thanks guys!
See LICENSE.md
FAQs
Unknown package
We found that scamp demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.