Last year you guys helped me out a lot when I was supporting a "friend" with cancer. I put that in quotes because although we grew up together, rodeo'd together, went to school together, I never considered a real friend, more of a friendly acquaintance. When she was diagnosed with a tough and very progressed cancer my family and I stepped up to help her, not just because we wanted to, but because there was no one else to do it because she's not a very nice person. Her husband had to work, she made his life miserable for not dropping everything. She kept going back 30 years to find things to throw in my face and to make me angry. It was a hour drive each way, every day, for a long time. When I was off school I took her, or after school I took. My mom took her, my dad took her,,, but she seemed to aim her anger at me. I finally pulled the truck over on I-10 one day, and said ok, either sit there and shut up an listen or get the hell and gone out of my truck. I was serious too, I would have let her get out in rush hour traffic and walk in the heat of the NM summer. I told her she had no right to treat me or her husband this way, that sure better not be saying any of this crap to my parents that she was spouting at me. I told her flat out she's never been a good friend, she never stepped up to help me, but that I could look past that to help her out when she needed it. I told her she either did something about her anger and her behavior or I wouldn't driver her anymore, and neither would my family. That while we understood her anger, and her fright, it didn't give her the right to destroy us while helping her. She did improve, and we did continue to help her, and we have a decent relationship with her now, but I had to be honest, straightforward and very rough with her. You probably don't need to be as hard, but stop letting her do this to you. Cancer does not give a person the right to hurt you.
ETA: You aren't a bad friend, you are a tired and abused friend, big difference there.