Advertisement
Guest User

Untitled

a guest
Sep 29th, 2014
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.84 KB | None | 0 0
  1. puts "Starting Script..."
  2. start_time = Time.now
  3.  
  4. require 'csv'
  5. require 'builder'
  6. require 'rest_client'
  7. require 'open-uri'
  8.  
  9. def add_article_xml (user_data, article_data)
  10. func_name = "add_project"
  11. xml = Builder::XmlMarkup.new( :indent => 2 )
  12. xml.instruct! :xml, :encoding => "ASCII"
  13. xml.request do
  14. xml.user_id user_data[:user_id]
  15. xml.api_key user_data[:api_key]
  16. xml.func_name func_name
  17. xml.title article_data[:title]
  18. xml.category article_data[:category]
  19. xml.art_len article_data[:art_len]
  20. xml.submit_tier article_data[:submit_tier]
  21. xml.price_per article_data[:price_per]
  22. xml.keywords do |keywords|
  23. keywords.keyword article_data[:keywords]
  24. end
  25. # xml.keywords do |keywords|
  26. # kw_array = article_data[:keywords].split(',')
  27. # kw_array.each do |keyword|
  28. # keyword.strip!
  29. # keywords.keyword keyword
  30. # end
  31. # end
  32. xml.writing_style article_data[:writing_style]
  33. xml.art_purpose article_data[:art_purpose]
  34. # Untested that this CDATA works for maintaining whitespace. Must try later.
  35. xml.special_instructions do
  36. xml.cdata! article_data[:special_instructions]
  37. end
  38. xml.to_writers article_data[:to_writers]
  39. xml.wait_period article_data[:wait_period]
  40. end
  41. end
  42.  
  43. def process_projects_csv (user_data, file_path)
  44. puts "Starting to read CSV..."
  45. CSV.foreach(file_path, :headers => true, :encoding => 'windows-1251:utf-8') do |row|
  46. article_data = { title: row["Project Title"],
  47. category: row["Category"],
  48. art_len: row["Article Length"],
  49. submit_tier: row["Submit Tier"],
  50. price_per: row["Price Per"],
  51. keywords: row["Keywords"],
  52. writing_style: row["Tone"],
  53. art_purpose: row["Article Purpose"],
  54. special_instructions: process_special_instructions(row["Special Instructions Full"]),
  55. to_writers: row["To Writers"],
  56. wait_period: row["Wait Period"],
  57. }
  58. xml_request = add_article_xml(user_data, article_data)
  59. puts xml_request
  60. puts
  61. puts
  62. #response = RestClient.post "http://www.iwriter.com/api/", xml_request
  63. #puts response
  64. puts "Proceed? Press CTRL+C to stop or anything else to go on..."
  65. gets.chomp
  66. end
  67.  
  68. end
  69.  
  70. def process_special_instructions (special_instructions)
  71. special_instructions.gsub! '\n', 10.chr
  72. end
  73.  
  74. file_path = "/Users/csalvato/Development/Libraries and Utilities/ruby-add-iwriter-projects/iwriter-articles.csv"
  75.  
  76. user_data = { user_id: "csalvato",
  77. api_key: "YzJmMTk5YzEyOGIwNjk1MjIxNTM4Nz"
  78. }
  79.  
  80. process_projects_csv(user_data, file_path)
  81.  
  82. puts "Script Complete!"
  83. puts "Time elapsed: #{Time.now - start_time} seconds"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement