views.py 에서 post[ 'body' ] string을 're' 패키지를 통해 http:// 로 시작하면서 jpg, png 로 끝나는 서브 스트링 부분을 (html comment removed: <img src= > ) 이런식으로 replace 하는 방법을 생각해봤지만,... 아직 구현은 못했어요. ㅎㅎ
일부 사진 파일의 경우 % 나 . 이 파일명에 들어가는 경우가 있더군요...
replaced = re.sub( r'https?://([a-zA-Z0-9][a-zA-Z0-9_-]+([.][a-zA-Z0-9][a-zA-Z0-9_-]+){1,2}(/[a-zA-Z0-9][^\s]*)+)[.](p ng|PNG|jpg|JPG|jpeg|JPEG|bmp|BMP|gif|GIF)', r'
그리고 이미지URL 중에 https://ipfs.busy.org/ipfs/QmWjSVnXpxTa36rYp4UauZRctqic2VPGMEqXuFToJXXTb6 이런 URL도 있네요. Busy.org 에서 이미지를 업로드하면 이렇게 생성되는것 같아요.
이것도 정규식으로 해볼려고 했는데 어렵네요.ㅋ 확장자가 없어서 정규식으로 가능한지도 잘모르겠어요.
views.py 에서 post[ 'body' ] string을 're' 패키지를 통해 http:// 로 시작하면서 jpg, png 로 끝나는 서브 스트링 부분을 (html comment removed: <img src= > ) 이런식으로 replace 하는 방법을 생각해봤지만,... 아직 구현은 못했어요. ㅎㅎ
저도 정규식으로 해볼려는데 쉽지 않네요.ㅠ
Posted using Partiko Android
해결 했습니다.
views.py 에서 아래와 같이 삽입하면 됩니다.
replaced = re.sub( r'https?://([a-zA-Z0-9][a-zA-Z0-9_-]+([.][a-zA-Z0-9][a-zA-Z0-9_-]+){1,2}(/[a-zA-Z0-9][a-zA-Z0-9_-]*)+)[.]( p ng|PNG|jpg|JPG|jpeg|JPEG|bmp|BMP|gif|GIF)', r'< img src="http://\1.\4">', post['body'] )
post[ 'body' ] = replaced
감사합니다. 잘작동합니다. 그리고 @apmmh님 제가 살짝 수정했어요~
replaced = re.sub(r'(^https?://([a-zA-Z0-9][a-zA-Z0-9_-]+([.][a-zA-Z0-9][a-zA-Z0-9_-]+){1,2}(/[a-zA-Z0-9][a-zA-Z0-9_-]*)+)[.](png|PNG|jpg|JPG|jpeg|JPEG|bmp|BMP|gif|GIF))', r'<img src="\1">', post['body'])
일부 사진 파일의 경우 % 나 . 이 파일명에 들어가는 경우가 있더군요...
replaced = re.sub( r'https?://([a-zA-Z0-9][a-zA-Z0-9_-]+([.][a-zA-Z0-9][a-zA-Z0-9_-]+){1,2}(/[a-zA-Z0-9][^\s]*)+)[.](p ng|PNG|jpg|JPG|jpeg|JPEG|bmp|BMP|gif|GIF)', r'
위와 같이 수정해봤습니다.
테스트할 페이지는 /@appics/appics-update-or-sneak-peek-into-the-appics-app-become-a-tester-now/
입니다.
수정해주셨네요. 감사합니다.
그리고 정규식 코드는 열심히 봐도 분석이 안되네요.ㅎㅎ
해도 해도 예외 케이스들이 발생하는거 같습니다 ㅎㅎ
replaced = re.sub( r'[^\ "\ '\ /]https?:\ /\ /([a-zA-Z0-9][a-zA-Z0-9_-]([.][a-zA-Z0-9][a-zA-Z0-9_-]){1,2}(\ /[a-zA-Z0-9][^\s]*)+)[.](p ng|PNG|jpg|JPG|jpeg|JPEG|bmp|BMP|gif|GIF)', r'>< center>< img src="http://\1.\4">', post['body'] )
좀 더 다듬은 버전입니다.
그리고 이미지URL 중에
https://ipfs.busy.org/ipfs/QmWjSVnXpxTa36rYp4UauZRctqic2VPGMEqXuFToJXXTb6
이런 URL도 있네요. Busy.org 에서 이미지를 업로드하면 이렇게 생성되는것 같아요.이것도 정규식으로 해볼려고 했는데 어렵네요.ㅋ 확장자가 없어서 정규식으로 가능한지도 잘모르겠어요.
이 글입니다.
https://steemit.com/gomdory/@gomdory/gomdory-2018-10-09
음.. 이 경우에는 alt 속성을 이용해서 해볼 수 있을런지 고민좀 해봐야 겠어요.
음... 이미지 확장자 때문에 comment 태그를 달아도 스트링으로 안나오는군요...
sub 메소드의 두번째 인자로
'r< img src = "http://\1.\4">'
이렇게 하는게 핵심입니다. \1 \2는 re 모듈에서 정규식표현을 찾은 후에 grouping 과정을 거치는데 \1 요게 내가 찾은 패턴의 첫번째 정규표현 부분을 나타냅니다. \4는 여기서 이미지 확장자를 의미하구요.
조금 더 욕심 내면 실제 steemit 처럼 중첩 댓글 출력과 post_list 출력 시 이미지나 링크 태그가 나오는 부분에서 row 범위를 벗어나게 출력되는 문제가 있는데.. 이것도 해결하면 더 예쁜 블로그가 될거 같아요!
리스트에서는 URL을 공백문자로 치환해봐야겠어요.ㅋ