No Description

imagepacket.cpp 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "imagepacket.h"
  2. /// \fn imagepacket::imagepacket()
  3. /// \~English
  4. /// \brief Construct a list of known image extensions.
  5. /// \~Spanish
  6. /// \brief Construye una lista de extensiones de imagenes conocida.
  7. imagepacket::imagepacket()
  8. {
  9. extensions << "jpg" << "jpeg" << "png" << "tiff" << "gif";
  10. }
  11. /// \fn bool imagepacket::isImage(string payload)
  12. /// \~English
  13. /// \brief Returns true if the http request payload received contains
  14. /// or is a request to an image, and stores the image url
  15. /// \param payload HTTP packet payload
  16. /// \return true if the http request payload received contains
  17. /// or is a request for an image
  18. /// \~Spanish
  19. /// \brief Devuelve cierto si la carga de la solicitud de HTTP recibida
  20. /// contiene o es una solicitud a una imagen, y guarda la imagen
  21. /// \param payload carga del paquete de HTTP
  22. /// \return cierto si la carga de la solicitud de HTTP recibida contiene
  23. /// o es una solicitud a una imagen
  24. bool imagepacket::isImage(string payload){
  25. QStringList list = QString::fromStdString(payload).split("\r\n") ;
  26. QStringList line ;
  27. QString url ;
  28. if(list.size() >= 2){
  29. line = list[0].split(" ") ;
  30. if(line.size() < 3)
  31. return false ;
  32. if(line[0] == "GET"){
  33. url = line[1] ;
  34. QFileInfo fi(url) ;
  35. if(!extensions.contains(fi.suffix())){
  36. return false ;
  37. }
  38. for(int i = 1; i < list.size() ; i++){
  39. line = list[i].split(":") ;
  40. if(line.size() < 2)
  41. return false ;
  42. if(line[0].trimmed() == "Host"){
  43. imageurl = line[1].trimmed() + url ;
  44. qDebug() << imageurl ;
  45. return true ;
  46. }
  47. }
  48. return false ;
  49. }
  50. return false ;
  51. }
  52. else{
  53. return false ;
  54. }
  55. }
  56. /// \fn QString imagepacket::getImage()
  57. /// \~English
  58. /// \brief Returns an image url if found in an http request
  59. /// \return image url if found in an http request
  60. /// \brief Devuelve un url a una imagen si fue encontrada en una
  61. /// solicitud de http
  62. /// \return url de una imagen si encontrada en una solicitud de http
  63. QString imagepacket::getImage(){
  64. return imageurl ;
  65. }