Add PixivClient::get_illusts
This commit is contained in:
		
							parent
							
								
									2c7103b56b
								
							
						
					
					
						commit
						f6447d9ec5
					
				
							
								
								
									
										12
									
								
								main.cpp
								
								
								
								
							
							
						
						
									
										12
									
								
								main.cpp
								
								
								
								
							| 
						 | 
				
			
			@ -52,6 +52,18 @@ int main(int argc, char** argv) {
 | 
			
		|||
    });
 | 
			
		||||
 | 
			
		||||
#ifndef NDEBUG
 | 
			
		||||
    // TODO remove
 | 
			
		||||
    server.Get("/debug/userillusts", [&](const httplib::Request& req, httplib::Response& res) {
 | 
			
		||||
        std::vector<uint64_t> illusts = pixiv_client.get_illusts(2583663);
 | 
			
		||||
        std::string output;
 | 
			
		||||
 | 
			
		||||
        for (uint64_t i : illusts) {
 | 
			
		||||
            output += std::to_string(i);
 | 
			
		||||
            output += '\n';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        res.set_content(std::move(output), "text/plain");
 | 
			
		||||
    });
 | 
			
		||||
    server.Get("/debug/exception/known", [](const httplib::Request& req, httplib::Response& res) {
 | 
			
		||||
        throw std::runtime_error("awoo");
 | 
			
		||||
    });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,6 +22,22 @@ User PixivClient::get_user(uint64_t user_id) {
 | 
			
		|||
    return this->_handle_result(std::move(res)).at("user_details").get<User>();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::vector<uint64_t> PixivClient::get_illusts(uint64_t user_id) {
 | 
			
		||||
    httplib::Result res = this->_www_pixiv_net_client.Get("/touch/ajax/illust/user_illusts", {
 | 
			
		||||
        {"lang", "en"}, {"user_id", std::to_string(user_id)}
 | 
			
		||||
    }, httplib::Headers());
 | 
			
		||||
 | 
			
		||||
    nlohmann::json user_illust_ids = this->_handle_result(std::move(res)).at("user_illust_ids");
 | 
			
		||||
    std::vector<uint64_t> ret;
 | 
			
		||||
    ret.reserve(user_illust_ids.size());
 | 
			
		||||
 | 
			
		||||
    for (auto &[_, i] : user_illust_ids.items()) {
 | 
			
		||||
        ret.push_back(to_ull(std::move(i)));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
nlohmann::json PixivClient::_handle_result(httplib::Result res) {
 | 
			
		||||
    if (!res) {
 | 
			
		||||
        throw HTTPLibException(res.error());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,7 @@ public:
 | 
			
		|||
    PixivClient();
 | 
			
		||||
 | 
			
		||||
    User get_user(uint64_t user_id);
 | 
			
		||||
    std::vector<uint64_t> get_illusts(uint64_t user_id);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    nlohmann::json _handle_result(httplib::Result res);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue