Как добавить Вкусный пост с несколькими тегами в ruby - PullRequest
0 голосов
/ 30 января 2012

Как я могу добавить сообщение с более чем одним тегом?

Я делаю это. Пост добавлен в мою коллекцию Delicious, но без тегов.

требуется 'www / Delicious'

d_api = WWW :: Delicious.new ('имя пользователя', 'пароль')

d_api.posts_add (: tags => "tools, ruby, online",: url => 'http://rubular.com/',: title =>' Rubular ',: notes =>' регулярный Ruby редактор выражений ')

В настоящее время я использую www / Delicious gem, но я открыт для другого предложения.

Я тоже попробую

: tags => ["tools", "ruby", "online"]

или событие использовать конструктор

tag = WWW :: Delicious :: Tag.new (: name => "tools")

но результат тот же, теги смешаны в одном Delicious screenshot of the tag

спасибо

Ответы [ 5 ]

1 голос
/ 31 января 2012

Вдохновленный Восхитительный API с HTTParty Gem код Я создаю такой класс

require 'rubygems'
require 'httparty'

class Delicious
  include HTTParty
  base_uri 'https://api.del.icio.us/v1'

  def initialize(auth)
    @auth = auth
  end

  # query params that filter the posts are:
  #   url      = (required) the url of the item.
  #   description= (required) the description of the item. 
  #   extended     = (optional) notes for the item.
  #   tags         = (optional) tags for the item (comma delimited).
  #   dt       = {CCYY-MM-DDThh:mm:ssZ}(optional) datestamp of the item (format "CCYY-MM-DDThh:mm:ssZ").
  #   replace  = no(optional) don't replace post if given url has already been posted. 
  #   shared   = no(optional) make the item private
  def add(options={}))
    options.merge!({:basic_auth => @auth})
    self.class.get('/posts/add', options)
  end
end

Тогда я могу назвать это так:

delicious = Delicious.new( :username => 'myUsername', :password => 'myPassword' )
puts delicious.add(:query => {:url => 'http://rubular.com/', :description => 'Rubular', :tags => "tools,ruby,online"})
0 голосов
/ 20 июня 2014

Я создал восхитительный камень , который представляет собой рубиновую оболочку для Delicious oAuth API .Вы можете легко добавить закладку:

client = Delicious::Client.new do |c|
  c.access_token = 'your-access-token'
end

client.bookmarks.create tags: 'tools,ruby,online',
                        url: 'http://rubular.com/',
                        description: 'Rubular',
                        extended: 'a Ruby regular expression editor'
0 голосов
/ 17 апреля 2013

В качестве альтернативы, Temboo SDK (который поставляется в Ruby и некоторых других языках) включает методы для Delicious API в дополнение к более чем 100 другим публичным API.Метод AddBookmark поддерживает несколько тегов: просто укажите разделенный запятыми список в качестве входного значения.

Взгляните на https://www.temboo.com/library/Library/Delicious/AddBookmark/

(полное раскрытие: я работаю в Temboo)

0 голосов
/ 21 февраля 2012

Странно, что работает так:

delicious.posts_add(
  :url   => 'http://www.test2.com',
  :title => 'test',
  :tags => ['test1, test2']
)

Массив с одной записью, представляющей собой список тегов через запятую.

0 голосов
/ 30 января 2012

Если вы посмотрите на API для WWW :: Delicious :: Post , теги являются атрибутом экземпляра.Я предполагаю, что это массив.Попробуйте:

d_api.posts_add(:tags=>["tools","ruby","online"],:url => 'http://rubular.com/', :title => 'Rubular', :notes=>'a Ruby regular expression editor')

Возможно, это массив объектов Tag, поэтому попробуйте еще одну вещь:

my_tags = ["tools","ruby","online"].map {|t| WWW::Delicious::Tag.new(t)}
d_api.posts_add(:tags => my_tags,:url => 'http://rubular.com/', :title => 'Rubular', :notes=>'a Ruby regular expression editor')
...