'Forum post' in RIS

edited January 7, 2024
I am trying to import a set of Telegram posts into Zotero through RIS.
I made the RIS look like this
TI - The U.S. sanctions list against Russia has expanded again, this time because of cyberattacks, and according to the U.S. Mi...
AU -
T2 - ZN.UA (Дзеркало тижня / Зеркало недели): новини України та світу, аналітика, інтерв'ю | Війна
AB - Санкційний список США проти Росії знову розширився. Цього разу через кібератаки. Згідно з повідомлення Міністерства фінансів США, до списку санкцій додали петербурзькі компанії Digital Security і DiveTechnoService, а ще під санкціями опинилися зареєстровані за межами РФ компанії Embedi і Erpscan, які пов'язані з Digital Security. Усіх підозрюють у зв'язках з ФСБ РФ. Щоправда компаніями країна-агресор не відбулась, у списку і кілька бізнесменів
CN -
CY -
DA - 2018-06-11 18:08:24
PY - 2018
DP -
ET -
SP -
LA - ua
SE -
SN -
ST -
UR - https://bit.ly/2JsHbVM
AN -
DB -
ER -
But when I import that into Zotero, I end up with an E-mail filetype. Is there a way to get it in there properly?
Also - is there a smarter way to do this - maybe circumventing RIS altogether? I do have the exports in a pandas dataframe, so I can pretty much do what I want with them...
Any help would be greatly appreciated!
  • If you want to keep using RIS, the only option I can think of is to modify the RIS import translator -- you can essentially desginate any RIS-style item type to the exportMap in the beginning of the translator, so something like forumPost: "POST",

    An alternative would be to instead create CSL JSON instead of RIS, which should be pretty straightforward (as opposed to something like Zotero RDF). I'm pretty sure CSL JSON post will import as a forum post, but I haven't tested that.
  • edited January 8, 2024
    Thanks, 'Adam' (guten Rutsch!). But so for the RIS-route: I'd just have to change the RIS.js in my translators folder?
    Like this?
    var exportTypeMap = {
    artwork: "ART",
    audioRecording: "SOUND", //consider MUSIC
    bill: "BILL",
    blogPost: "BLOG",
    book: "BOOK",
    bookSection: "CHAP",
    case: "CASE",
    computerProgram: "COMP",
    conferencePaper: "CONF",
    dictionaryEntry: "DICT",
    encyclopediaArticle: "ENCYC",
    email: "ICOMM",
    dataset: "DATA",
    film: "MPCT",
    forumPost: "POST",
    hearing: "HEAR",
    journalArticle: "JOUR",
    letter: "PCOMM",
    magazineArticle: "MGZN",
    manuscript: "MANSCPT",
    map: "MAP",
    newspaperArticle: "NEWS",
    patent: "PAT",
    presentation: "SLIDE",
    report: "RPRT",
    statute: "STAT",
    thesis: "THES",
    videoRecording: "VIDEO",
    webpage: "ELEC"

    And then I just change this in my Jupyter Notebook? - TY - ICOMM to TY - POST?
    def ris_entry(row):
    return f"""TY - POST
    TI - {row['title_en']}
    AU -
    T2 - {row.get('source', 'Unknown')}
    AB -
    CN -
    CY -
    DA - {row.get('datetime', 'Unknown')}
    PY - {str(row.get('datetime', 'Unknown'))[:4]}
    DP -
    ET -
    SP -
    LA - {row.get('lang', 'Unknown')}
    SE -
    SN -
    ST -
    UR - {row.get('text_link', 'Unknown')}
    AN -
    DB -
    ER - \n\n"""
  • Yup, though do note that the local RIS.js would occasionally get overwritten on updates.
    You could create a new one with a new ID (the guid in the beginning) that's called something like RIS-modified.js and has a lower priority number: that'd then take precedence on import while being ignored in web translators (which call the translator ID of the relevant import translator). Or you can just check that 'your' version of RIS.js is in place before importing. These changes take effect immediately, no need to even restart Zotero.
Sign In or Register to comment.