Skip to content

Instantly share code, notes, and snippets.

@qichunren
Created January 8, 2020 04:17
Show Gist options
  • Save qichunren/e72353f8e447087a03e9a43d79a219ff to your computer and use it in GitHub Desktop.
Save qichunren/e72353f8e447087a03e9a43d79a219ff to your computer and use it in GitHub Desktop.
require 'open-uri'
require 'json'
require 'time'
orders = {}
ROUTE_TYPE_CROSS = 7
ROUTE_TYPE_INNER = 3
USER_ID = "xxxxxxx-dae3-4682-92a7-fcd323b52a3c"
def fetch_result(route_id:, route_type:, sign:, ddcinfo:)
response_body = open("http://capis-slb.didapinche.com/carpool/list/driver/route/old?route_id=#{route_id}&route_type=#{route_type}&user_cid=#{USER_ID}&order_by=0&page=1&page_size=20",
"User-Agent" => "DidaPinche/8.6.0(xxx) [[App]] Dalvik/2.1.0 (Linux; U; Android 9; 7 Pro MIUI/V10.3.11.0.PFHCNXM)",
"ddcinfo" => ddcinfo,
"Sign" => sign,
"Authorization" => "Bearer VOw4Gxxxxuyh45i6ZWf7qJ9tFiJN3l11r6p3EoOyXj+qVA/qhSugTiOV8tZ4Yxxxgdk7nC7kbbaMsFFpqTSmf5uiIPeM5etg2Vmy88351mNaJV1s7yBWRa",
"Host" => "capis-slb.didapinche.com",
"Connection" => "Keep-Alive"
).read
return response_body
end
while true
json_res = JSON.parse(fetch_result(route_id: "1sdfsafs232323", route_type: ROUTE_TYPE_CROSS, sign: "76466cxxxx60012a4151c818e6de31 1573108527 carpool", ddcinfo: "ehAq+CFEfF1U0cfR2zWYFgZak7CjkZ0O/+0PNMwQLLAW+tUw6h+y9KDa+9dq2ATRsypbUDuhXjjwVzB/+l7d1atmSJ92SzE2W2gpKRehcINDhnJCW9P5FLevuEbW5gRm8dmpDA4QldbPdFwwD0e8rHxcp8CzFpPzFwF3hiOBeSDRM8OXJO8mLzqJ/f8hsbK0aIdBOnrm8dmRXoESsNTOdHfeTQU0wFgc8xh+44DToymIw3zMWqEa3HZNDmqbwnXXniuIEr2PM8cXQ+UXLkjE7jMyaMhlDC3V2YbuKeEOGH7z1cRhu5zffv1FlvBXBIjlh6bqlVilhc4AhrLtFaNbf6P9anjjKQuGq0GMm1skIAmccsbpC3AxHkav9E6dNHFftXafbqa67wE6TRNNAwXPgHcK8nrYJYyWAo1zFoyRVQe68zXpa0jE/e4QSQ0Uy6BwQAAIseOr07vLq/qKSCavBMPs0FrES39r1SOmH4uH8AFKkO3FT2/Ef9f38DYFd4ecJPgDry+3joQOoR+3TX2zSTVf9pAD/DLQjMvAzclielQhHAOnO+6DXgB4Ed4pwzEVnwDxI7kEGi1rvLRubptJY+AGCeoUsNWRcwJUJCaggbODOoNjA7kA5h7pQqRfwjyas7jNVBv2IoLF79iWImisdg929uGDKbOOekI4raQBlf9ErZeNVzPMLl8mnOVLD8VlE0oGkxuH3KOQvw1dHYgBQABrB/MiXXzrNGa3ValHVp1TY66HE1tWoPFnQogELL+y3Bu6dLi6iv3wDgXXK8Gat21e3GpUK7vsGvkypE084kAUhg9xIe8LUU9uwVZHkE08hmmJ0HCcM3EJI5I/jOYzSHrt5YY/uMA/i78OV8owWfX0cfAb7+QQ6CgwIx8IxucD2UtmpZ5FSlsOKKZMe/S2hAtqO14QRAE0tUYw/b/w/5zLw3LKSBINOg=="))
json_res['list'].each do |info_item|
start_addr = info_item['from_poi']['long_address'] || info_item['from_poi']['short_address']
start_addr2 = info_item['from_poi']['short_address']
start_distance = info_item['from_poi']['business']
end_addr = info_item['to_poi']['long_address']
end_addr2 = info_item['to_poi']['short_address']
end_distance = info_item['to_poi']['business']
price = info_item['driver_received_price']
person_num = info_item['person_num']
plan_start_time = Time.parse(info_item['plan_start_time'])
match_percent = info_item['match_percent']
order_id = info_item['id']
if plan_start_time.hour >= 19 && plan_start_time.hour < 21
if match_percent >= 80
if orders[order_id].nil?
if match_percent >= 85
system("notify-send -i face-wink \"#{plan_start_time.strftime('%H:%M')} #{price} (#{start_distance} -> #{end_distance}) #{start_addr2} - #{end_addr2}\"")
end
puts "!!!!!! #{plan_start_time.strftime('%H:%M')} #{price}元 顺路指数:#{match_percent} (#{start_distance} -> #{end_distance}) #{start_addr} - #{end_addr}"
orders[order_id] = info_item
end
elsif match_percent >= 75
if orders[order_id].nil?
puts "! #{plan_start_time.strftime('%H:%M')} #{price}元 顺路指数:#{match_percent} (#{start_distance} -> #{end_distance}) #{start_addr} - #{end_addr}"
orders[order_id] = info_item
end
end
end
end # end each
sleep(3)
json_res = JSON.parse(fetch_result(route_id: "3670821871235118211111", route_type: ROUTE_TYPE_INNER, sign: "d0f833338e0be71655ba674ef6453749bdfa 1573108392 carpool", ddcinfo: "ehAq+CFEfF1U0cfR2zWYFgZak7CjkZ0O/+0PNMwQLLAW+tUw6h+y9KDa+9dq2ATRsypbUDuhXjjwVzB/+l7d1atmSJ92SzE2W2gpKRehcINDhnJCW9P5FLevuEbW5gRm8dmpDA4QldbPdFwwD0e8rHxcp8CzFpPzFwF3hiOBeSDRM8OXJO8mLzqJ/f8hsbK0aIdBOnrm8dmRXoESsNTOdHfeTQU0wFgc8xh+44DToymIw3zMWqEa3HZNDmqbwnXXniuIEr2PM8cXQ+UXLkjE7jMyaMhlDC3V2YbuKeEOGH7z1cRhu5zffv1FlvBXBIjlh6bqlVilhc4AhrLtFaNbf6P9anjjKQuGq0GMm1skIAmoF6Pmp/mWVjFDoyCPv/6aoWP9FhmXruFZHLKSVY43MEtTr1o2ukV4uQlkASAWaZQjrWPXnfEaWjEiJFW0rRWQ+4t2KImWmQmUvElTH+Rb4T8VZspXPgGi8ReZZh8viY4qYMi2ixTT+l2rnIR2lSd9r1YnSwB+ljmJQs1NtYMLPSpUwNNpxcofVYUO7meZA6DS/6fMyt3XGRZaPHq1pj3q26PqLKaFVIMW+mTfGByN2FALTHYWhEC8miJwhXlIIc/Cux9Q584OIT5CqZ/97xPo90rWQ908hMMPNcOSxSHN4YKvUSPfQl9ODbL4TfdoNblTZAnILYCYH3RFE6wA98p7Opaot0zmmU7l6lSmAB687aWizTd2Kh/knN5sNMhMzH0zzIogNURbX8D65AlnLbXGsrVnH3gW+xeGXRUxvqiBB+zEYY4qgFCt2LQqgV/SMCUMB+ufvGq33nW9ZL0Xurl9D8yLJsOiuaXx+DeytKuQUVRrFRHwlqinoDQX8MzMdsU3c55HC3/kuz6RQu58Be60p9HLms4UgHYN15cOtIndWqoKHo59bNntX/hQWVMMYo5mpsAwoNDV+g=="))
json_res['list'].each do |info_item|
start_addr = info_item['from_poi']['long_address'] || info_item['from_poi']['short_address']
start_addr2 = info_item['from_poi']['short_address']
start_distance = info_item['from_poi']['business']
end_addr = info_item['to_poi']['long_address']
end_addr2 = info_item['to_poi']['short_address']
end_distance = info_item['to_poi']['business']
price = info_item['driver_received_price']
person_num = info_item['person_num']
plan_start_time = Time.parse(info_item['plan_start_time'])
match_percent = info_item['match_percent']
order_id = info_item['id']
if plan_start_time.hour >= 19 && plan_start_time.hour < 21
if match_percent >= 80
if orders[order_id].nil?
if match_percent >= 85
system("notify-send -i face-wink \"#{plan_start_time.strftime('%H:%M')} #{price} (#{start_distance} -> #{end_distance}) #{start_addr2} - #{end_addr2}\"")
end
puts "!!!!!! #{plan_start_time.strftime('%H:%M')} #{price}元 顺路指数:#{match_percent} (#{start_distance} -> #{end_distance}) #{start_addr} - #{end_addr}"
orders[order_id] = info_item
end
elsif match_percent >= 75
if orders[order_id].nil?
puts "! #{plan_start_time.strftime('%H:%M')} #{price}元 顺路指数:#{match_percent} (#{start_distance} -> #{end_distance}) #{start_addr} - #{end_addr}"
orders[order_id] = info_item
end
end
end
end # end each
random_sleep_time = rand(60..180)
sleep(random_sleep_time)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment