게시판 여러분께,
메일링리스트에서 이메일을 가져와서 디스커스에 연동하고 있습니다. 메일 제목이 새로운 주제로 생성되는데, 이 부분은 잘 작동하고 있습니다.
이제 제목의 앞부분을 제거해야 합니다. 앞부분은 단순히 메일링리스트 이름이거든요.
"[mailinglist] 실제 주제"에서 "실제 주제"만 추출하고 싶습니다.
아직 온라인에서 적절한 해결책을 찾지 못했습니다. 혹시 아시는 분 계신가요?
감사합니다.
marko
게시판 여러분께,
메일링리스트에서 이메일을 가져와서 디스커스에 연동하고 있습니다. 메일 제목이 새로운 주제로 생성되는데, 이 부분은 잘 작동하고 있습니다.
이제 제목의 앞부분을 제거해야 합니다. 앞부분은 단순히 메일링리스트 이름이거든요.
"[mailinglist] 실제 주제"에서 "실제 주제"만 추출하고 싶습니다.
아직 온라인에서 적절한 해결책을 찾지 못했습니다. 혹시 아시는 분 계신가요?
감사합니다.
marko
거기에 이를 제거하는 코드가 있다고 생각했지만, mbox 마이그레이션을 한 지 3년이 지났네요.
제목은 ...mbox/importer.rb`에서 설정됩니다:
def map_first_post(row)
mapped = map_post(row)
mapped[:category] = category_id_from_imported_category_id(row['category'])
mapped[:title] = row['subject'].strip[0...255]
mapped
end
제목 줄을 다음과 같이 변경할 수 있습니다:
mapped[:title] = row['subject'].strip[0...255].gsub(/^[.*?\]/,"")
정규식을 한 번에 제대로 작성하는 경우는 드물기 때문에, 테스트를 좀 해보시고 (http://rubular.com/에서 실험해 보시는 것도 좋습니다).
이 부분을 지적해 주셔서 감사합니다.
정규식(RegEx)은 /^\[(.*?)\]\s/처럼, 줄의 시작 부분에 있는 "[…] "와 같은 모든 것을 매칭하도록 되어 있을 것 같습니다.
제 설치 환경에서 importer.rb 파일을 어디에서 찾을 수 있는지 자세히 설명해 주실 수 있을까요? (로컬 Ubuntu VM에 “30분 이내 설치” 가이드를 사용했습니다)
컨테이너 내부에 있는 경우
cd /var/discourse
./launcher enter app
스크립트를 실행하는 위치에서 다음을 시도해 보세요:
find . -name importer.rb
수정된 정규 표현식을 사용하여 mbox/importer.rb 파일을 변경했으며, 수신되는 주제가 변경되지 않는 상태에서 정적 치환 문자열도 시도해 보았습니다.
다음과 같이 설명을 명확히 하겠습니다.
현재 제 질문은 다음과 같습니다.
./script/import_scripts/mbox/importer.rb가 올바른 임포터인가요?.gsub("remove this prefix ","") 구문이 올바른가요?다음과 같이 시도해 보았습니다.
mapped[:title] = row['subject'].strip[0...255].gsub(/^\[(.*?)\]\s/,"")
아직까지 아무런 변화가 없었습니다…
다시 한번 감사합니다.
이 문제는 임포터(importer)와는 무관합니다. topic_created 웹훅을 소비하는 컨슈머(consumer)나 플러그인(코드 몇 줄이면 충분할 것입니다)이 필요하며, 이를 통해 API를 사용하여 토픽 제목을 수정할 수 있습니다.
완전히 오해했네요. mbox 파일을 가져오는 줄 알았어요. 제가 말씀드린 내용은 모두 당신의 상황에 맞지 않았습니다. 죄송합니다.